CASE in ORDER BY
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy. Lektion 2 von 27.
CASE ist nicht nur für SELECT da. Sie können es innerhalb von ORDER BY verwenden, um rows nach einer benutzerdefinierten Regel zu sortieren, die die Spalten allein nicht ausdrücken können.
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDBeachte die kürzere Form: CASE column WHEN value THEN .... Es ist äquivalent zu WHEN column = value. Verwende die Variante, die sich besser lesen lässt.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
Gib title und priority zurück, so sortiert, dass 'critical' zuerst kommt, dann 'high', dann 'low' und alles andere zuletzt. Bei gleicher Priorität sortiere nach title alphabetisch.
Probier es selbst
SELECT title, priority
FROM tasks
ORDER BY
-- Ersetze die Platzhalter-Sortierung unten durch einen CASE-Ausdruck, der
-- die Zeilen so rangiert, wie die Aufgabe es beschreibt, und dann Gleichstände alphabetisch auflöst
id
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 IIFZusammenfassung - AnwesenheitÜbe selbstständig: SQL-Playground