in
default
- 21 1月, 2016
【SQL】文字列+数字で構成されるソート
testカラムのABC1,ABC2,ABC3,ABC11,ABC12,ABC13のデータを並び替えるとき、
select * from test_table ORDER BY test;
を実行すると、
ABC1,ABC11,ABC12,ABC13,ABC2,ABC3の順番になってしまう。
そこで、以下のSQLを実行する。
select * from test_table ORDER BY RIGHT( CONCAT( '00', SUBSTRING(test, 4 ) ) , 2 );
ABC1,ABC2,ABC3,ABC11,ABC12,ABC13の順番になる。
各コマンドの役割は以下のとおりである。
これで文字列+すうじの組み合わせや桁数の合わない数字のソートも可能である。