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
CASEdeclaraçã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.