SQLのCASE WHENの使い方
CASE WHEN文は、SQLで使用される条件付きステートメントの1つであり、異なる条件に基づいて異なる値を返すために使用されます。
基本的な文法は以下の通りです:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
condition1やcondition2などは条件式であり、どんなブール式でも構いません。result1やresult2などは条件に基づいて計算された結果です。
例えば、異なる成績レベルに応じて対応するコメントを返す例が以下に示されています。
SELECT grade,
CASE
WHEN grade >= 90 THEN '优秀'
WHEN grade >= 80 THEN '良好'
WHEN grade >= 70 THEN '中等'
WHEN grade >= 60 THEN '及格'
ELSE '不及格'
END AS comment
FROM scores;
この例では、成績gradeに応じて、該当するコメントcommentを返します。成績が90以上の場合は「優秀」、80から89の間の場合は「良好」など、その他も同様です。
CASE WHEN文は順番に判断され、最初に条件を満たす結果のみが返されるという点に注意する必要があります。条件を満たす結果がない場合は、ELSE以下の結果が返されます。
CASE WHEN文も入れ子構造になることができ、より複雑な条件判断を実現できます。