Oświadczenie CASE MySQL
Instrukcja MySQL CASE
Instrukcja CASE
przechodzi przez warunki i zwraca wartość, gdy pierwszy warunek zostanie spełniony (jak instrukcja jeśli-to-inaczej). Tak więc, gdy warunek jest spełniony, przestanie czytać i zwróci wynik. Jeśli żaden warunek nie jest spełniony, zwraca wartość w ELSE
klauzuli.
Jeśli nie ma ELSE
części i żadne warunki nie są spełnione, zwraca NULL.
CASE Składnia
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Demo bazy danych
Poniżej znajduje się wybór z tabeli „Szczegóły zamówienia” w przykładowej bazie danych Northwind:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
Przykłady przypadków MySQL
Poniższy kod SQL przechodzi przez warunki i zwraca wartość, gdy spełniony jest pierwszy warunek:
Przykład
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;
Poniższy SQL będzie zamawiał klientów według miasta. Jeśli jednak miasto ma wartość NULL, uporządkuj według kraju:
Przykład
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);