Instrução CASE do MySQL
A instrução CASE do MySQL
A CASE
instrução passa por condições e retorna um valor quando a primeira condição é atendida (como uma instrução if-then-else). Assim, uma vez que uma condição for verdadeira, ela parará de ler e retornará o resultado. Se nenhuma condição for verdadeira, ele retornará o valor na ELSE
cláusula.
Se não houver ELSE
parte e nenhuma condição for verdadeira, ele retornará NULL.
Sintaxe CASE
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN
conditionN THEN resultN
ELSE result
END;
Banco de dados de demonstração
Abaixo está uma seleção da tabela "OrderDetails" no banco de dados de exemplo 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 |
Exemplos de CASE MySQL
O SQL a seguir passa por condições e retorna um valor quando a primeira condição é atendida:
Exemplo
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;
O SQL a seguir ordenará os clientes por Cidade. No entanto, se Cidade for NULL, então ordene por País:
Exemplo
SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);