[SQL] 数字を含む文字列を比較するには?
完全に個人的なメモ
「1R」とか「2DK」とか「3LDK」といった文字データの入ったカラムをターゲットに、”4部屋以上”、”4部屋以下”といった条件でデータを抽出したい。
メンドウなことに、このカラムには「事務所」とか「店舗」とか数値の含まれないデータも入っている。
テーブル名は「hoge_tb」カラム名は「room」
とりあえず、思いついたのが以下
1 |
SELECT * FROM hoge_tb WHERE to_number(('0' || room), '99')>=4 |
1 |
SELECT * FROM hoge_tb WHERE to_number(('0' || room), '99')<=4 AND to_number(('0' || room), '99')<>0 |
う~ん、あまり綺麗くない。
もっと、いい方法がないかな。