TOP

SQL CASE

Descrizione SQL CASE

L'espressione SQL CASE esamina le condizioni e restituisce un valore quando la prima condizione viene soddisfatta (ad esempio, un'istruzione if-then-else). Pertanto, non appena la condizione viene soddisfatta, l'istruzione interromperà la lettura e restituirà il risultato. Se non viene soddisfatta alcuna condizione, viene restituito il valore nella clausola ELSE.

Se non è presente alcuna parte di ELSE e le condizioni non sono soddisfatte, viene restituito NULL.


CASE Sintassi

SELECT column1, column2, ...
CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END

Banca dati dimostrativa

Quello che segue è un esempio della tabella "OrderDetails" del database "Northwind":

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140

Esempi SQL CASE

La seguente istruzione SQL controlla le condizioni e restituisce un valore quando viene soddisfatta la prima condizione:

Run SQLSELECT 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

Questa query SQL ordina i clienti per città (City). Tuttavia, se la città è NULL, ordina per paese (Country):

Run SQLSELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END)