CASE WHEN
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy. Lektion 1 von 27.
Ein CASE-Ausdruck ist ein if/else if/else für SQL. Er steht innerhalb von SELECT (oder ORDER BY oder WHERE) und erzeugt einen Wert pro Zeile.
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 75 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM studentsJedes WHEN wird von oben nach unten geprüft; die erste Übereinstimmung gewinnt. Das ELSE ist optional. Ohne es erhalten nicht übereinstimmende Zeilen NULL.
Beende immer mit END und gib der Spalte mit AS einen Namen.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
employees:id,name,department,salary
Gib für jeden Mitarbeiter den name, die department und eine wie folgt erstellte tier-Spalte zurück:
'partner', wennsalary >= 150000(jede Abteilung)'senior', wenndepartment = 'eng'undsalary >= 100000'mid', wennsalary >= 60000'entry'andernfalls
Sortiere nach salary in absteigender Reihenfolge. Beachte, dass die Reihenfolge der WHEN-Zweige wichtig ist: Der erste Treffer gewinnt.
Probier es selbst
SELECT name, department,
-- Stufe mit mehreren WHEN-Zweigen, die Gehalt und Abteilung mischen
FROM employees
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Über die Grundlagen hinaus
1Bedingte Logik
CASE WHENCASE in ORDER BYCOALESCE für NULL-WerteNULLIF und IIFRückblick – AnwesenheitÜbe selbstständig: SQL-Playground