MySQL CASE- verklaring
De MySQL CASE-verklaring
De CASE
instructie doorloopt voorwaarden en retourneert een waarde wanneer aan de eerste voorwaarde is voldaan (zoals een if-then-else-instructie). Dus zodra een voorwaarde waar is, stopt deze met lezen en wordt het resultaat geretourneerd. Als er geen voorwaarden waar zijn, wordt de waarde in de ELSE
clausule geretourneerd.
Als er geen ELSE
onderdeel is en er zijn geen voorwaarden waar, wordt NULL geretourneerd.
CASE-syntaxis
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Demodatabase
Hieronder vindt u een selectie uit de "OrderDetails"-tabel in de Northwind-voorbeelddatabase:
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-voorbeelden
De volgende SQL doorloopt de voorwaarden en retourneert een waarde wanneer aan de eerste voorwaarde wordt voldaan:
Voorbeeld
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;
De volgende SQL zal de klanten per stad bestellen. Als Stad echter NULL is, sorteer dan op Land:
Voorbeeld
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);