SELECT test_column FROM test_table ORDER BY test_column
私にこれを与える:
1
12
123
2
3
なぜだめですか:
1
2
3
12
123
文字列を数字のように並べ替えるにはどうすればよいですか?
SELECT test_column FROM test_table ORDER BY test_column
私にこれを与える:
1
12
123
2
3
なぜだめですか:
1
2
3
12
123
文字列を数字のように並べ替えるにはどうすればよいですか?
試す
SELECT test_column
FROM test_table
ORDER BY cast(test_column as int)
ただし、列の種類を正しいものに変更することを検討する必要があります。
ソートは機能しています。これは、辞書式ソート (アルファベット順) です。その列にはテキスト(char、varchar、...)タイプがあるように見えるため、取得する順序はテキストであり、数値ではありません。
数値ソートが必要な場合は、数値列タイプ (int など) を使用します。(または、列を適切にキャストします。)
列のタイプがvarcharまたは類似のものであるかどうかを確認します。数値ではなく、文字列値で並べ替えられているようです。列に数値のみが含まれる場合は、int型にすることをお勧めします。