Funkcja MySQL CASE
Przykład
Przejrzyj warunki i zwróć wartość, gdy spełniony zostanie pierwszy warunek:
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
FROM OrderDetails;
Definicja i użycie
Instrukcja CASE przechodzi przez warunki i zwraca wartość, gdy pierwszy warunek jest spełniony (jak instrukcja IF-THEN-ELSE). Tak więc, gdy warunek jest spełniony, przestanie czytać i zwróci wynik.
Jeśli żaden warunek nie jest spełniony, zwróci wartość w klauzuli ELSE.
Jeśli nie ma części ELSE i żadne warunki nie są spełnione, zwraca NULL.
Składnia
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Wartości parametrów
Parameter | Description |
---|---|
condition1, condition2, ...conditionN | Required. The conditions. These are evaluated in the same order as they are listed |
result1, result2, ...resultN | Required. The value to return once a condition is true |
Szczegóły techniczne
Pracuje w: | Z MySQL 4.0 |
---|
Więcej przykładów
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);