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 gedacht. Du kannst es in ORDER BY einsetzen, um Zeilen nach einer benutzerdefinierten Regel zu sortieren, die sich allein mit den Spalten nicht ausdrücken lässt.
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 .... Sie ist gleichbedeutend mit WHEN column = value. Verwende die Form, die sich besser lesen lässt.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
tasks:id,title,priority
Gib title und priority zurück, sortiert, sodass 'critical' zuerst kommt, dann 'high', anschließend 'low' und alles andere zuletzt. Bei gleicher Priorität wird alphabetisch nach title sortiert.
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 IIFRückblick – AnwesenheitÜbe selbstständig: SQL-Playground