文字列型の数字の並び替え
テーブル_a
数値1 , 数値2
12345 , 12345
456 , 456.5
78 , 78.3
これを昇順で並べ替え
数値1で昇順
SELECT 数値1 , 数値2 FROM テーブル_a ORDER BY to_number(数値1,'99999')
結果
78 , 78.3
456 , 456.5
12345 , 12345
数値2を指定して同じように実行すると、エラーになる。
numericがどうとか仰られる。
to_number(数値1,'99999') この部分を lpad(数値2, 10, '0') に変更
数値2の先頭を「0」で埋めて並び替え
数値1 , 数値2
0000012345 , 0000012345
0000000456 , 00000456.5
0000000078 , 00000078.3
こんなイメージにして並び替え
SELECT 数値1 , 数値2 FROM テーブル_a ORDER BY lpad(数値2, 10, '0')
結果
数値1 , 数値2
78 , 78.3
456 , 456.5
12345 , 12345
※コメント投稿者のブログIDはブログ作成者のみに通知されます