Instrução CASE SQL

O CASE declaração em SQL é uma expressão condicional versátil que nos permite incorporar lógica condicional diretamente em nossas consultas. Ele permite retornar resultados específicos com base em determinadas condições, permitindo saídas de consulta dinâmicas. Se você precisa criar novas colunas modifique os existentes ou personalize a saída de suas consultas Declaração CASO pode lidar com tudo.

Neste artigo aprenderemos o Instrução SQL CASE detalhadamente com exemplos claros e casos de uso que mostram como aproveitar esse recurso para melhorar suas consultas SQL.

Instrução CASE em SQL

  • O CASE declaração em SQL é uma expressão condicional que permite executar lógica condicional em uma consulta.
  • É comumente usado para criar novas colunas com base na lógica condicional, fornecer valores personalizados ou controlar saídas de consulta com base em determinadas condições.
  • Se nenhuma condição for verdadeira então o OUTRO parte será executada. Se não houver nenhuma parte ELSE então ele retorna NULO.

Sintaxe:

Para usar a instrução CASE em SQL, use a seguinte sintaxe:

CASE valor_caso
QUANDO condição ENTÃO resultado1
QUANDO condição ENTÃO resultado2
...
Outro resultado
FIM DO CASO;

Exemplo de instrução SQL CASE

Vejamos alguns exemplos da instrução CASE em SQL para entendê-la melhor.

Vamos criar uma tabela SQL de demonstração que será usada nos exemplos.

Banco de dados SQL de demonstração

Estaremos usando esta tabela SQL de amostra para nossos exemplos na instrução SQL CASE:

ID do cliente NomeDoCliente Sobrenome País Idade Telefone
1 Dúvida Thakur Índia 23 xxxxxxxxx
2 Seguro Chopra Austrália 21 xxxxxxxxx
3 Naveen Tulasi Sri Lanka 24 xxxxxxxxx
4 Aditya Arpan Áustria 21 xxxxxxxxx
5 Nishant. Salchichas S.A. jainista Espanha 22 xxxxxxxxx

Você pode criar o mesmo banco de dados em seu sistema escrevendo a seguinte consulta MySQL:

 CREATE TABLE Customer( CustomerID INT PRIMARY KEY CustomerName VARCHAR(50) LastName VARCHAR(50) Country VARCHAR(50) Age int(2) Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone) VALUES (1 'Shubham' 'Thakur' 'India''23''xxxxxxxxxx') (2 'Aman ' 'Chopra' 'Australia''21''xxxxxxxxxx') (3 'Naveen' 'Tulasi' 'Sri lanka''24''xxxxxxxxxx') (4 'Aditya' 'Arpan' 'Austria''21''xxxxxxxxxx') (5 'Nishant. Salchichas S.A.' 'Jain' 'Spain''22''xxxxxxxxxx');   

Exemplo 1: Expressão CASE Simples

Neste exemplo usamos a instrução CASE

Consulta:

 SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;  

Saída:

NomeDoCliente Idade Nacionalidade
Dúvida 23 indiano
Seguro 21 Estrangeiro
Naveen 24 Estrangeiro
Aditya 21 Estrangeiro
Nishant. Salchichas S.A. 22 Estrangeiro

Exemplo 2: SQL CASE quando múltiplas condições

Podemos adicionar várias condições na instrução CASE usando vários QUANDO cláusulas.

Consulta:

 SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;  

Saída:

NomeDoCliente Idade QuantidadeTexto
Dúvida 23 A idade é maior que 22
Seguro 21 A idade é 21
Naveen 24 A idade é maior que 22
Aditya 21 A idade é 21
Nishant. Salchichas S.A. 22 A idade é superior a 30

Exemplo 3: Instrução CASE com cláusula ORDER BY

Vamos pegar a tabela Customer que contém CustomerID CustomerName LastName Country Age e Phone. Podemos verificar os dados da tabela Cliente usando o comando ENCOMENDAR POR cláusula com a instrução CASE.

Consulta:

 SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);  

Saída:

NomeDoCliente País
Seguro Austrália
Aditya Áustria
Nishant. Salchichas S.A. Espanha
Naveen Sri Lanka
Dúvida Índia

Pontos importantes sobre a declaração CASE

  • A instrução SQL CASE é uma expressão condicional que permite a execução de diferentes consultas com base em condições especificadas.
  • Deveria haver sempre um SELECIONAR na instrução CASE.
  • FIM ELSE é um componente opcional, mas QUANDO ENTÃO esses casos devem ser incluídos na instrução CASE.
  • Podemos fazer qualquer declaração condicional usando qualquer operador condicional (como ONDE ) entre QUANDO e ENTÃO. Isso inclui encadear múltiplas instruções condicionais usando E e OU.
  • Podemos incluir várias instruções WHEN e uma instrução ELSE para combater condições não abordadas.

Conclusão

O CASE fornece um mecanismo robusto para incorporar lógica condicional em consultas SQL. Ao usar esta instrução você pode lidar com várias condições e personalizar a saída de suas consultas de forma eficaz. Entendendo como implementar CASE As expressões permitem que você execute manipulação de dados e relatórios mais sofisticados, tornando suas consultas SQL mais dinâmicas e responsivas a diferentes cenários.

Criar questionário