Loading [MathJax]/extensions/tex2jax.js

sqlite3 で文字を数値に変えて order by

sqlite3 でカラムのタイプがテキストだと、そのまま order by すると 11 が 2 よりも前に来てしまいます。
これってよくあることですよね。

でも、2 を 11 より前にしたいのであればこのままではダメです。

cast する

cast することによって文字列を数値に変換できます。
もちろん逆もできます。

cast(koumokuNo as integer)

クエリとしては、以下のような感じで。

SELECT * FROM kekka WHERE hizuke = '20211225' AND uketukeNo = '19' ORDER BY cast(koumokuNo as integer) ASC;