Dichiarazione CASE MySQL
La dichiarazione CASE di MySQL
L' CASE
istruzione passa attraverso le condizioni e restituisce un valore quando viene soddisfatta la prima condizione (come un'istruzione if-then-else). Quindi, una volta che una condizione è vera, interromperà la lettura e restituirà il risultato. Se nessuna condizione è vera, restituisce il valore nella ELSE
clausola.
Se non c'è nessuna ELSE
parte e nessuna condizione è vera, restituisce NULL.
Sintassi CASE
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Database dimostrativo
Di seguito è riportata una selezione dalla tabella "OrderDetails" nel database di esempio 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 |
Esempi di CASE MySQL
Il seguente SQL esamina le condizioni e restituisce un valore quando viene soddisfatta la prima condizione:
Esempio
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;
Il seguente SQL ordinerà i clienti per città. Tuttavia, se Città è NULL, ordina per Paese:
Esempio
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);