Dicas T-SQL – Utilizando o comando CASE

Olá humanos,

Nesse post vamos falar sobre o comando CASE e suas variações com vários exemplos. #gogogo


Comando CASE:

Em primeiro lugar, o comando CASE avalia uma lista de condições e retorna uma das várias expressões de resultado possíveis.

O comando ELSE é OPCIONAL.

O comando CASE pode ser usado em qualquer instrução ou cláusula que permita uma expressão válida. Por exemplo: SELECT, UPDATE, DELETE e SET, e em cláusulas, como WHERE, ORDER BY e HAVING.

SINTAXE:

Segue abaixo um link da documentação oficial da Microsoft com mais detalhes:

https://docs.microsoft.com/pt-br/sql/t-sql/language-elements/case-transact-sql?view=sql-server-ver15

Agora vamos criar a tabela “Pedido” que será utilizada nos próximos exemplos.

Segue abaixo a tabela que foi criada.


Exemplo 1 – CASE simples:

Esse é o exemplo MAIS SIMPLES, utilizamos o CASE na coluna “FlSituacao”. Repare que no caso do cliente “Dirceu Resende” o valor original da coluna é “?”, mas não temos nenhuma opção no CASE com ela. Como NÃO utilizamos o comando ELSE, o valor dessa linha retorna NULL.

O CASE vai validar cada uma das opções seguindo a ordem de cima para baixo e irá retornar o primeiro que fizer a correspondência do valor com a coluna “FlSituacao”. Por exemplo, se ele já for igual na primeira opção, ele irá retornar o resultado e não irá validar as demais opções.


Exemplo 2 – CASE com ELSE – Tratando NULL:

Nesse exemplo inclui o comando ELSE no CASE. Dessa forma, quando não existir uma opção com o valor correspondente, iremos retornar sempre o valor do ELSE, que nesse caso será “Desconhecido”. Repare que a “Situacao” do cliente “Dirceu Resende” não veio mais com o valor NULL.


Exemplo 3 – CASE com expressão simples:

Agora vamos ver um exemplo utilizando uma expressão. Nesse caso, estamos apenas comparando a coluna “FlSituacao” com alguns valores específicos. Repare que dessa vez tivemos que repetir a coluna em cada uma das opções após o comando WHEN (nos exemplos anteriores utilizamos a coluna apenas uma vez logo após o comando CASE).


Exemplo 4 – CASE com mais expressões:

Por fim, nesse exemplo mostro que podemos utilizar mais de uma expressão em cada uma das opções. Repare no print que agora temos duas opções para as situações “Pendente” (seta vermelha) e “Aprovado” (seta verde).

IMPORTANTE: Cuidado para não utilizar várias expressões e deixar a query muito complexa. Já vi alguns casos que o CASE ficou bem grande e dificultava demais o entendimento. Seja simples xD.


Espero que tenha gostado e que isso também possa ser útil no seu dia a dia. Até o próximo post!

Me siga no LinkedIn e YouTube para ficar por dentro das novidades.

Abraço,

Luiz Vitor França Lima

Consultor SQL Server

Deixe uma resposta