trapemiyaの日記

hatenablogが新しくなったんで新規一転また2019年1月からちょこちょこ書いてます。C#中心のプログラミングに関するお話です。

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

パフォーマンス的には宜しくないので、抽出されるレコードが少ない場合などに活用しましょう。
通常は、ちゃんと表示順を定めたテーブルを用意し、その表示順でソートしましょうね。

◆総括
良い子のみなさんはあんまりやっちゃダメですよ。
ただ、ちょっとしたテストなんかの時とか頭の隅に置いておくと役に立つ場面があるかもしれませんね。