Como configurar e consultar condições com SQL CASE

SQL CASE possibilita a manipulação de bancos de dados por realizar consultas baseadas em condições, exibindo os respectivos resultados. O conceito da condição CASE é semelhante ao da instrução If-then-else.

O que é SQL CASE?

Em muitas linguagens de banco de dados e linguagens de programação, a instrução If-then-else é comum. Ela executa uma ação enquanto uma determinada condição for verdadeira. Quando isso deixa de ser verdadeiro, o programa sai do loop ou executa uma ação alternativa. A SQL (Structured Query Language) adota um princípio semelhante e fornece a instrução SQL CASE. Esta percorre uma lista de condições e retorna um valor específico quando uma condição é atendida. Se nenhuma condição for atendida e não houver uma cláusula ELSE definida, o resultado será NULL.

vServer (VPS) da IONOS

Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.

  • Armazenamento 100% SSD
  • Pronto em 55 segundos
  • Certificado SSL

Sintaxe de SQL CASE

A sintaxe básica do SQL CASE é a seguinte:

SELECT coluna1, coluna2,,
CASE
	WHEN condição1 THEN resultado1
END AS nome
FROM nome_da_tabela;
sql

Você especifica quais colunas devem ser consideradas com o comando SQL SELECT. Com CASE, você verifica a condição. Se a condição for atendida (ou seja, for verdadeira), o valor do resultado associado será exibido. END AS encerra a estrutura. FROM indica em qual tabela a estrutura deve ser aplicada.

Com a restrição opcional ELSE, a sintaxe fica assim:

SELECT coluna1, coluna2,,
CASE
	WHEN condição1 THEN resultado1
	ELSE resultado_diferente
END AS nome
FROM nome_da_tabela;
sql

Exemplo de SQL CASE

Para ilustrar o funcionamento do SQL CASE, criamos uma tabela simples chamada “Lista de clientes”. Nela, registramos um número de cliente, o nome do cliente, sua localização, a data do pedido, a quantidade de itens pedidos e o valor total pago em reais.

Número do Cliente Nome Localização Data Itens Valor Total
1427 Santos Salvador 13/01/2024 14 634
1377 Moreira Aparecida do Norte 19/01/2024 9 220
1212 Garcia Aparecida do Norte 03/01/2024 15 400
1431 Vieira Recife 19/01/2024 22 912
1118 Becker Poços de Caldas 01/02/2024 10 312

Agora utilizamos a condição para processar a lista. Para valores totais acima de 400 reais, deve ser exibido um texto específico. O mesmo vale para valores abaixo de 400 reais. A restrição ELSE é usada para pedidos que totalizam exatamente 400 reais. Você já pode ver que várias condições podem ser verificadas em sequência. A sintaxe adequada para nosso exemplo é a seguinte:

SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
CASE
	WHEN Valor Total > 400 THEN 'O valor da compra é superior a 400 reais'
   	WHEN Valor Total < 400 THEN 'O valor da compra é inferior a 400 reais'
   	ELSE 'O valor da compra é igual a 400 reais'
END AS Detalhes do pedido
FROM Lista de clientes;
sql

A saída correspondente é semelhante a esta:

Número do Cliente Nome Localização Data Itens Valor Total Detalhes da Compra
1427 Santos Salvador 13/01/2024 14 634 O valor da compra é superior a 400 reais
1377 Moreira Aparecida do Norte 19/01/2024 9 220 O valor da compra é inferior a 400 reais
1212 Garcia Aparecida do Norte 03/01/2024 15 400 O valor da compra é exatamente 400 reais
1431 Vieira Recife 19/01/2024 22 912 O valor da compra é superior a 400 reais
1118 Becker Poços de Caldas 01/02/2024 10 312 O valor da compra é inferior a 400 reais

Combinar SQL CASE com outras instruções

Você também pode consultar as condições dentro de outras instruções. Abaixo, organizamos as entradas por número do cliente. Se este não estiver disponível (ou seja, for NULL), o nome do cliente deve ser considerado. Este é o código correspondente:

SELECT Número do Cliente, Nome, Localização, Data, Itens, Valor Total
FROM Lista de clientes
ORDER BY
(CASE
		WHEN Número do Cliente IS NULL THEN Nome
		ELSE Número do Cliente
END);
sql

A saída é a seguinte:

Número do Cliente Nome Localização Data Itens Valor Total
1118 Becker Poços de Caldas 2/1/2024 10 312
1212 Garcia Aparecida do Norte 1/3/2024 15 400
1377 Moreira Aparecida do Norte 1/19/2024 9 220
1427 Santos Salvador 1/13/2024 14 634
1431 Vieira Recife 1/19/2024 22 912
Dica

Com o SQL Server Hosting da IONOS, você pode escolher entre MSSQL, MySQL ou MariaDB. Beneficie-se de uma performance excepcional, de uma forte arquitetura de segurança e de consultorias personalizadas!

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top