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は省略可能です。省略すると、一致しない行にはNULLが設定されます。
必ず END で終了し、AS を使って列に名前を付けます。
チャレンジ
簡単利用可能なテーブルと列:
employees:id、name、department、salary
各従業員について、name、department、および次のように作成したtier列を返してください:
'partner':salary >= 150000の場合(departmentを問わない)'senior':department = 'eng'かつsalary >= 100000の場合'mid':salary >= 60000の場合'entry':それ以外の場合
salaryの降順で並べ替えてください。WHEN branchesの順序が重要であることに注意してください。最初に一致した条件が適用されます。
自分で試してみよう
SELECT name, department,
-- salary と department を組み合わせた複数の WHEN ブランチを持つ tier
FROM employees
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
応用のすべてのレッスン
自分で練習してみよう: SQLプレイグラウンド