ロケーション テーブルを昇順で並べ替えるように依頼されました。現在、テーブルのデータは次のようになっています。
- 100F01
- 105B02
- 10B01
- GK1-A01
- 201E12
- 20A01
ただし、このデータを画面に表示するときは、数値の結果を昇順で並べ替えてから、文字列の結果をアルファベット順に並べ替えます。出力は次のようになります。
- 10B01
- 20A01
- 100F01
- 105B02
- 201E12
- GK1-A01
次のコードを使用してみました
SELECT location FROM freelocations
ORDER BY CAST(SUBSTRING(location, 1, 2) AS INT)
ただし、予想どおり、一部の場所は数字で始まらないため、これはエラー メッセージを返します。
varchar 値 'GK' をデータ型 int に変換するときに変換に失敗しました。
どんなアイデアやヒントでも大歓迎です