値の判定を行います。
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 |