MySQL -CASE- Anweisung
Die MySQL-CASE-Anweisung
Die CASE
Anweisung durchläuft Bedingungen und gibt einen Wert zurück, wenn die erste Bedingung erfüllt ist (wie eine if-then-else-Anweisung). Sobald also eine Bedingung wahr ist, hört sie auf zu lesen und gibt das Ergebnis zurück. Wenn keine Bedingungen erfüllt sind, wird der Wert in der ELSE
Klausel zurückgegeben.
Wenn kein ELSE
Teil vorhanden ist und keine Bedingungen wahr sind, wird NULL zurückgegeben.
CASE-Syntax
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Demo-Datenbank
Nachfolgend finden Sie eine Auswahl aus der Tabelle „OrderDetails“ in der Northwind-Beispieldatenbank:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
MySQL-CASE-Beispiele
Die folgende SQL durchläuft Bedingungen und gibt einen Wert zurück, wenn die erste Bedingung erfüllt ist:
Beispiel
SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30
THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The
quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
Die folgende SQL ordnet die Kunden nach Stadt. Wenn die Stadt jedoch NULL ist, sortieren Sie nach Land:
Beispiel
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);