SQLのORDER BYにCASE式が使えてちょっと嬉しかったお話
SQLで検索結果をソートするときってorder by使うよね。でもさ、単純に大きい順とか五十音順とかじゃなくて、ひと工夫したいときってあるじゃないですか。
たとえば、国名のリストをアルファベット順でソートして一覧表示するけど、利便性を考えて日本は一番上に表示したい、とかね。
で、まあ、そういうときは表示順のソートキーを別項目として持ったりするのがいいんだろうなって思ってたんだけど、最近シンプルな解決策を教わりました。
select country_name from t_country order by case country_name when 'Japan' then 1 else 2 end, country_name
ソートの第1条件として'Japan'かどうかを判断して、第2条件として国名を見る、という方法。
やー、SQLは奥が深いな。