Tutorial SQL

SQL INÍCIO Introdução SQL Sintaxe SQL Seleção SQL SQL Select Distinto SQL Onde SQL E, Ou, Não Ordem SQL por SQL Inserir em Valores Nulos SQL Atualização SQL Excluir SQL SQL Select Top SQL Mínimo e Máximo Contagem SQL, Média, Soma Como SQL Curingas SQL Entrada SQL SQL entre Alias ​​SQL Junções SQL SQL Inner Join SQL Left Join Associação à direita do SQL Associação completa SQL Auto-junção SQL União SQL SQL Agrupar por SQL tendo SQL existe SQL Qualquer, Todos SQL Selecionar em SQL Inserir na seleção Caso SQL Funções Nulas SQL Procedimentos armazenados SQL Comentários SQL Operadores SQL

Banco de dados SQL

SQL Criar banco de dados SQL Drop DB Banco de dados de backup SQL SQL Criar Tabela Tabela de descarte de SQL Tabela de alteração SQL Restrições SQL SQL não nulo SQL exclusivo Chave Primária SQL Chave estrangeira SQL Verificação SQL Padrão SQL Índice SQL Incremento automático de SQL Datas SQL Visualizações SQL Injeção SQL Hospedagem SQL Tipos de dados SQL

Referências SQL

Palavras-chave SQL Funções do MySQL Funções do SQL Server Funções de acesso MS Referência Rápida SQL

Exemplos SQL

Exemplos SQL Teste SQL Exercícios de SQL Certificado SQL

Instrução SQL CASE


A instrução SQL CASE

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 SQL CASE

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);