CASE

値の判定を行います。

CASE expression
       WHEN condition THEN return
     [ WHEN condition THEN return ... ]
     [ ELSE return ]
     END

CASE WHEN expression THEN return
   [ WHEN expression THEN return ... ]
   [ ELSE return ]
     END

return : 判定値
expression : 式
condition : 条件

 

*
下記のテーブルがあるとき…

社員マスタ

社員番号 名前 所属部署コード 月給
1 しゃちょさん 100 1000000
2 部長さん 200 600000
3 主任さん 220 400000
4 Aさん 220 200000
5 Bさん 220 300000

 

*
社員マスタの所属部署コードが100のとき”社長室”を、200のとき”IT事業部”を、それ以外のときNULLを出力する場合、以下のように記述します。

SELECT 社員番号,
       名前,
       CASE 所属部署コード
              WHEN 100 THEN '社長室'
              WHEN 200 THEN 'IT事業部'
              ELSE NULL
            END AS "所属部署",
       月給
  FROM 社員マスタ
;

結果

社員番号 名前 所属部署 月給
1 しゃちょさん 社長室 1000000
2 部長さん IT事業部 600000
3 主任さん NULL 400000
4 Aさん NULL 200000
5 Bさん NULL 300000

 

*
社員マスタの給与が999999以上のとき”HIGH”を、給与が500000以上、999999未満のとき”MID”を、それ以外のとき”STD”を出力する場合、以下のように記述します。

SELECT 社員番号,
       名前,
       所属部署コード,
       CASE WHEN 月給 >= 999999 THEN 'HIGH'
            WHEN 月給 >= 500000 AND 月給 < 999999 THEN 'MID'
            ELSE 'STD'
            END AS "所得"
  FROM 社員マスタ
;

結果

社員番号 名前 所属部署コード 所得
1 しゃちょさん 100 HIGH
2 部長さん 200 MID
3 主任さん 220 STD
4 Aさん 220 STD
5 Bさん 220 STD

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です