41

文字として格納された数値の列があります。この列に対して ORDER BY を実行すると、次のようになります。

100
131
200
21
30
31000
など

これらの文字を数値で並べ替えるにはどうすればよいですか? 何かを変換する必要がありますか?それとも、そのための SQL コマンドまたは関数が既に存在しますか?

ありがとうございました。

4

5 に答える 5

88

これを試して:

ORDER BY CAST(thecolumn AS int)
于 2009-01-28T23:26:39.750 に答える
28

これは私のために働いた:

ORDER BY ABS(column_name)
于 2011-12-18T20:07:05.667 に答える
2

これは、「自然な並べ替え」で数値文字列を並べ替える際の問題です (Google で「自然な並べ替え」を検索すると、大量の情報が見つかります)。基本的に文字列を int としてキャストし、結果の値でソートすると修正されます。

于 2009-01-28T23:27:59.233 に答える