🖥️

#29 【SQL】CASE式の基本的な使い方

2024/08/14に公開

はじめに

今回は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式について簡単に紹介しました。
参考になりましたら幸いです。
ご覧いただきありがとうございました。

出典:スッキリわかるSQL入門 第3版

Discussion