CASE WHEN
CoddyのSQLジャーニー「応用」セクションの一部 — レッスン 1/27。
CASE 式は、SQLにおける if/else if/else に相当するものです。SELECT(または ORDER BY や WHERE)の内部で機能し、行ごとに値を生成します。
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 75 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM students各 WHEN は上から下へと評価され、最初の条件一致が優先されます。ELSE は任意です。ELSE がない場合、条件に一致しない行には NULL が設定されます。
常にENDで終了し、ASを使って列に名前を付けてください。
チャレンジ
簡単利用可能なテーブルとカラム:
<strong>employees</strong>:<strong>id</strong>,<strong>name</strong>,<strong>department</strong>,<strong>salary</strong>
各従業員について、name、department、および以下のように作成された tier カラムを返してください:
salary >= 150000の場合は'partner'(部署を問わない)department = 'eng'かつsalary >= 100000の場合は'senior'salary >= 60000の場合は'mid'- それ以外の場合は
'entry'
salary の降順で並べ替えてください。WHEN の分岐の順序が重要であることに注意してください(最初に一致したものが適用されます)。
自分で試してみよう
SELECT name, department,
-- 給与と部署を組み合わせた複数のWHENブランチを持つティア
FROM employees
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。