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 は任意です。ELSE がない場合、条件に一致しない行には NULL が設定されます。

常にENDで終了し、ASを使って列に名前を付けてください。

challenge icon

チャレンジ

簡単

利用可能なテーブルとカラム:

  • <strong>employees</strong>: <strong>id</strong>, <strong>name</strong>, <strong>department</strong>, <strong>salary</strong>

各従業員について、namedepartment、および以下のように作成された tier カラムを返してください:

  • salary >= 150000 の場合は 'partner'(部署を問わない)
  • department = 'eng' かつ salary >= 100000 の場合は 'senior'
  • salary >= 60000 の場合は 'mid'
  • それ以外の場合は 'entry'

salary の降順で並べ替えてください。WHEN の分岐の順序が重要であることに注意してください(最初に一致したものが適用されます)。

自分で試してみよう

SELECT name, department,
       -- 給与と部署を組み合わせた複数のWHENブランチを持つティア
FROM employees
quiz icon腕試し

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

応用のすべてのレッスン