前回の続き
今回は、条件分岐を目的とするCASE式を紹介します。
CASE式
CASE式は、もしデータが、〇〇だったら××、△△だったら□□みたいなかんじに読み替えてあげることを目的とします。
便利なのは、SELECT文をはじめ、UPDATE、DELETE、INSERTなどででも使え、さらにSELECT句、WHERE句、ORDER句、などなどスカラであらわされる部分なら大抵は使えるのが特徴です。
文法はこんな感じ
CASE WHEN [比較元データ] = [比較データ] THEN [出力したいデータ] WHEN [元データ] = [比較データ] THEN [出力したいデータ] ・・・ ELSE [出力したいデータ] END
もしくは、
CASE [比較元データ] WHEN [比較データ] THEN [出力したいデータ] WHEN [比較データ] THEN [出力したいデータ] ・・・ ELSE [出力したいデータ] END
ちなみに、ELSEは指定しなくてもよいが、指定しないでどの条件にも当てはまらないと、NULL出力になります。
実践してみる
Person.Personテーブルについて、PersonTypeがEMならAを、GCならBを、それ以外ならCを表示するようにしてみます。
※ 比較しやすいように、PersonTypeカラムも表示して、かつ重複削除しています。
SELECT DISTINCT PersonType, CASE PersonType WHEN 'EM' THEN 'A' WHEN 'GC' THEN 'B' ELSE 'C' END AS TEST_CASE FROM Person.Person
結果はこんな感じ
こんなかんじにけっこう多用するCASE式について、次回は使い方の応用を紹介したいと思います。