🖥️
#29 【SQL】CASE式の基本的な使い方
はじめに
今回はCASE式の基本構文と使用例について紹介します。
CASE式を使うことで、SQLで条件分岐を行なうことができます。
CASE式について
CASE式を使い条件を指定することで、その結果に応じ処理を分岐させることができます。
CASE式には、単純CASE式と検索CASE式があります。
1.単純CASE式
基本構文
CASE 評価する式や値
WHEN 値1 THEN 値1のときに返す値
WHEN 値2 THEN 値2のときに返す値
ELSE 条件に当てはまらない場合に返す値
END
使用例
SELECT user_id,user_name,
CASE favorite_animal_id WHEN 1 THEN '犬'
WHEN 2 THEN '猫'
ELSE '犬と猫以外' END AS favorite_animal
FROM user
ORDER BY user_id;
2.検索CASE式
基本構文
CASE WHEN 条件1 THEN 条件1のときに返す値
WHEN 条件2 THEN 条件2のときに返す値
ELSE 条件に当てはまらなかった場合に返す値
END
使用例
SELECT user_name,
CASE WHEN score >= 90 THEN 'S'
WHEN score >= 70 THEN 'A'
WHEN score >= 30 THEN 'B'
WHEN score < 30 THEN 'C'
ELSE '不明です' END AS rank
FROM game_score
ORDER BY score DESC;
【応用】条件付きの集計をしてみる
CASE式とSUM関数を使った条件付きの集計を行います。
WHERE句を使って分岐させるより読みやすくなります。
使用例
SELECT team,
SUM(CASE WHEN user_age < 20 THEN 1 ELSE 0 END) AS "20歳未満",
SUM(CASE WHEN user_age >= 20 THEN 1 ELSE 0 END) AS "20歳以上"
FROM user
GROUP BY age;
最後に
CASE式について簡単に紹介しました。
参考になりましたら幸いです。
ご覧いただきありがとうございました。
Discussion