order by句でcase式
order by句でcase式が使えることに気づいていない人が割と多い。
例えば以下の例では、通常は、
A, B, C, SA
と並ぶところを、
SA, A, B, C
と並び変えている。
order by case ランク when 'SA' then 1 else 2 end, case ランク when 'A' then 1 else 2 end, case ランク when 'B' then 1 else 2 end, case ランク when 'C' then 1 else 2 end
パフォーマンス的には宜しくないので、抽出されるレコードが少ない場合などに活用しましょう。
通常は、ちゃんと表示順を定めたテーブルを用意し、その表示順でソートしましょうね。
◆総括
良い子のみなさんはあんまりやっちゃダメですよ。
ただ、ちょっとしたテストなんかの時とか頭の隅に置いておくと役に立つ場面があるかもしれませんね。