Tutorial MySQL

MySQL HOME Introdução ao MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECIONAR MySQL ONDE MySQL E, OU, NÃO MySQL ORDER BY MySQL INSERT INTO Valores NULL do MySQL ATUALIZAÇÃO DO MySQL MySQL EXCLUIR MySQL LIMIT MySQL MIN e MAX MySQL COUNT, AVG, SUM MySQL LIKE Caracteres curinga do MySQL MySQL IN MySQL ENTRE Aliases do MySQL Junções do MySQL MySQL INNER JOIN MySQL LEFT JOIN MySQL RIGHT JOIN MySQL CROSS JOIN Auto-ingresso do MySQL MySQL UNION MySQL GROUP BY MySQL TENDO O MySQL EXISTE MySQL QUALQUER, TODOS MySQL INSERT SELECT CASO MySQL Funções Nulas do MySQL Comentários do MySQL Operadores MySQL

Banco de dados MySQL

MySQL Criar banco de dados MySQL Drop DB MySQL Criar Tabela Tabela de descarte do MySQL Tabela de alteração do MySQL Restrições do MySQL MySQL não nulo MySQL exclusivo Chave primária do MySQL Chave estrangeira do MySQL Verificação do MySQL Padrão do MySQL MySQL Criar Índice Incremento automático do MySQL Datas do MySQL Visualizações do MySQL

Referências do MySQL

Tipos de dados MySQL Funções do MySQL

Exemplos MySQL

Exemplos MySQL Teste do MySQL Exercícios do MySQL

Instrução CASE do MySQL


A instrução CASE do MySQL

A CASEinstruçã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 ELSEcláusula.

Se não houver ELSEparte 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);