Menu
Coddy logo textTech

CASE WHEN

CoddyのSQLジャーニー「応用」セクションの一部。レッスン 1/27。

CASE 式は、SQL における if/else if/else です。SELECT(または ORDER BYWHERE)の中で使用し、行ごとに値を生成します。

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 を使って列に名前を付けます。

challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • employeesidnamedepartmentsalary

各従業員について、namedepartment、および次のように作成した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
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

応用のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド