L'istruzione CASE viene utilizzata per verificare le condizioni ed eseguire attività su ciascuna riga durante la selezione dei dati. Per esempio:
SELECT customer_id, name,
CASE
WHEN age >= 18 THEN 'Allowed'
END AS can_vote
FROM customers;
CASE inizia sempre con la keyword CASE e termina sempre con la keyword END seguita dall'alias del nome della colonna.
SELECT order_id, customer_id,
CASE
WHEN amount >= 400 THEN (amount - amount * 10/100)
END AS offer_price
FROM orders;
È anche possibile impilare più condizioni all'interno della clausola CASE. Per esempio:
SELECT customer_id, name
CASE
WHEN country = 'USA' THEN 'United States of America'
WHEN country = 'UK' THEN 'United Kingdom'
END AS country_name
FROM customers;
Un'istruzione può avere una clausola CASE facoltativa. La clausola ELSE viene eseguita se nessuna delle condizioni CASE nell'istruzione è soddisfatta. Per esempio:
SELECT customer_id, name
CASE
WHEN country = 'USA' THEN 'United States of America'
WHEN country = 'UK' THEN 'United Kingdom'
ELSE 'Unknown country'
END AS country_name
FROM customers;