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. Sie können es innerhalb von ORDER BY verwenden, um Zeilen 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
ENDBeachten Sie die Kurzform: CASE column WHEN value THEN .... Dies ist äquivalent zu WHEN column = value. Verwenden Sie 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>
Geben Sie title und priority zurück, so sortiert, dass 'critical' zuerst kommt, dann 'high', dann 'low' und alles andere zuletzt. Innerhalb derselben Priorität sortieren Sie alphabetisch nach title.
Spickzettel
Verwenden Sie CASE innerhalb von ORDER BY, um nach einer benutzerdefinierten Regel zu sortieren:
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDDie Kurzform CASE column WHEN value THEN ... entspricht CASE WHEN column = value THEN ....
Probier es selbst
SELECT title, priority
FROM tasks
ORDER BY
-- ...
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