作成日:2022-01-20, 更新日:2022-01-20
基本
▼数字が「カラム: colm_foo」に格納されている場合、暗黙的に数値に変換してソート
select * from tbl_hoge order by (colm_foo + 0) desc;
to_number()
MySQLじゃないなら「to_number()」があるらしい
※どのDBで使えるかは未調査
経緯
- 「B12、101、301、102、B11」のような「文字列」があった
- 「301、101、102、B11、B12」のようにソートする必要が出てきた
- 使われる値のルールが単純で限られているので無理矢理設定(mysql 並び換えのルールを作りたい(order,case))
- 「1001」「12301」のような今までのルールでは対応できない値が入ることになった
- ・・・困った・・・
・・・こんな感じ。
※予め想定していても、大人の事情で対応するわけにはいかないコトもある
諸々を考慮してkey-valueのようなテーブルを用意してどうにかして対応しようってコトにした