CASE WHEN no SQL – Estruturas Condicionais no SQL

Aprenda como utilizar o CASE WHEN no SQL para fazer classificação de informações. Estruturas condicionais no SQL é um assunto simples, mas muito importante!

O CASE WHEN é a estrutura condicional do SQL, usada dentro de um SELECT para classificar dados. Ele começa com CASE, avalia cada condição com WHEN … THEN e retorna o resultado da primeira condição verdadeira; o ELSE define o valor padrão e o END encerra a estrutura, geralmente com um alias para a nova coluna.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula ensina a usar o CASE WHEN dentro de um SELECT para classificar produtos pelo preço unitário numa tabela do MySQL, sintaxe válida em outros bancos. Você aprende a montar CASE, WHEN ... THEN, ELSE e END com alias, passar de duas para três classes e entender por que as condições são avaliadas de cima para baixo.

Neste vídeo (11 min):

  • 1:30 - A lógica de uma condição no dia a dia: se fizer sol, praia; caso contrário, cinema
  • 2:20 - Sintaxe do CASE WHEN dentro do SELECT: começa com CASE, cada condição vem com WHEN ... THEN e termina com END
  • 3:30 - A tabela de produtos no MySQL, com nome, marca, preço unitário e custo unitário, usada nos exemplos
  • 4:00 - Exemplo 1: produtos com preço unitário de 3.000 ou mais são Classe A, e os demais, Classe B
  • 5:00 - ELSE para a Classe B sem repetir o teste do preço, END e alias para nomear a nova coluna
  • 6:05 - Executando a consulta e ordenando pelo preço para conferir onde a Classe A termina
  • 7:00 - Exemplo 2 com três faixas: Classe A a partir de 3.000, Classe B entre 1.000 e 3.000 e Classe C abaixo de 1.000
  • 8:00 - Trocando o ELSE por um novo WHEN de preço maior ou igual a 1.000 e deixando a Classe C no ELSE
  • 8:35 - A regra para contar os WHEN: número de classificações menos um, porque a última fica no ELSE
  • 9:20 - Por que o notebook de 4.200 não vira Classe B: a primeira condição verdadeira encerra a avaliação

Trechos do vídeo:

  • O CASE WHEN é a estrutura condicional do SQL: começa com CASE, testa cada condição com WHEN ... THEN, usa ELSE como resultado padrão e fecha com END
  • As condições são avaliadas de cima para baixo e a primeira verdadeira decide o resultado, por isso a faixa de preço mais alta vem primeiro
  • Como a condição de 3.000 vem antes, o segundo WHEN só precisa testar se o preço unitário é >= 1000: o limite de cima da Classe B já fica garantido pela ordem das condições
  • Com duas classes basta um WHEN e o ELSE: o que não é Classe A só pode ser Classe B
  • Um alias depois do END dá nome à coluna criada pela classificação, que aparece ao lado das colunas selecionadas

CASE WHEN no SQL – Estruturas Condicionais no SQL

Na aula de hoje, você aprenderá como fazer uma classificação de informações dentro do SQL utilizando a estrutura CASE WHEN no SQL.

Vou te ensinar sobre as estruturas condicionais no SQL, um assunto simples, mas muito importante de ser conhecido e dominado.

Veremos dois exemplos ao longo dessa aula. No primeiro, utilizaremos o CASE WHEN no SQL para fazer uma classificação simples com apenas dois resultados.

Em seguida, veremos casos em que vamos precisar de mais classificações, então podemos utilizar mais de uma estrutura CASE WHEN SQL para fazer essa classificação.

Estruturas Condicionais no SQL – CASE WHEN SQL

Trabalhar com condições faz parte do nosso dia a dia. A todo momento, estamos avaliando condições para tomar uma determinada ação ou outra.

Por exemplo, imagine que você está planejando sair no final de semana. Se fizer sol, você irá à praia; caso contrário, você irá ao cinema. Esse é um exemplo cotidiano apenas para ilustrar como as condições fazem parte do nosso dia a dia, nesse caso, a condição é fazer sol.

Dentro do SQL, também precisamos trabalhar e lidar com condições. Para esses casos, vamos utilizar as estruturas condicionais CASE WHEN no SQL.

Essas estruturas condicionais serão usadas dentro de uma consulta SELECT. A sintaxe dela funcionará da seguinte forma:

SQL
SELECT
    coluna1,
    coluna2,
    CASE
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        WHEN conditionN THEN resultN
        ELSE result
    END
from tabela;
Ícone SQLSQL Impressionador

Domine a linguagem mais importante do Mundo para quem trabalha com Dados, seja para se destacar na sua empresa atual, para conseguir um diferencial em processos seletivos ou até mesmo para entrar em áreas de dados.

Começar agoraSeta para a direita
Fundo SQLTelas SQL
Luz SQL

A estrutura segue este formato padrão, iniciando com CASE e encerrando com END. Entre essas palavras-chave, inserimos as condições utilizando WHEN. Cada condição WHEN é seguida por uma expressão que será avaliada.

Se a expressão for verdadeira, a instrução associada a essa condição será executada. Podemos ter várias condições encadeadas, e a primeira que for verdadeira determinará a ação a ser tomada.

No exemplo acima, quando (WHEN) a condição 1 (condition1) for verdadeira, então (THEN) o SQL retornará o resultado 1 (result1) para essa consulta.

Por fim temos o ELSE no SQL que é o “caso contrário”. Ou seja, se nenhuma das condições for satisfeita o ELSE que será executado.

Exemplo CASE WHEN no SQL com Uma Condição

Vamos ver um exemplo prático de como utilizar as estruturas condicionais para facilitar o entendimento.

Nesse primeiro exemplo, vamos fazer uma consulta utilizando apenas 1 condição dentro da estrutura CASE WHEN no SQL. Você pode usar qualquer banco de dados ou tabela que você tenha disponível para fazer sua consulta.

No meu caso utilizarei esta tabela de produtos:

SQL
SELECT * FROM produtos;
Tabela de exemplo

Vamos supor que, a partir dessa base de dados, queremos classificar os produtos de acordo com o preço unitário (Preco_Unit). Dividindo-os entre CLASSE A caso o preço unitário seja maior do que 3000 ou, caso contrário, CLASSE B.

Em uma estrutura CASE WHEN no SQL essa condição pode ser escrita da seguinte forma:

SQL
SELECT
    Nome_Produto,
    Preco_Unit,
    CASE
        WHEN Preco_Unit >= 3000 THEN 'CLASSE A'
        ELSE 'CLASSE B'
END AS Classe_Produto
FROM produtos;

Estamos selecionando da tabela produtos as colunas Nome_Produto e Preco_Unit e comparando o valor atribuído ao preço unitário. Quando o preço unitário for maior do que 3000, o produto é classificado como CLASSE A; caso contrário, como CLASSE B.

Ao final, criamos um alias, um nome para a coluna que será gerada com o resultado das condições que estamos analisando, nesse caso, Classe_Produto.

Executando esse código, teremos como resultado a tabela abaixo:

CASE WHEN no SQL – Estruturas Condicionais no SQL com uma Condição

Repare que ela apresenta as duas colunas que selecionamos, mais a terceira coluna criada a partir da condição que estabelecemos.

Exemplo CASE WHEN no SQL com Mais de Uma Condição

Vamos considerar um cenário agora em que queremos classificar os produtos em 3 classes diferentes. Classe A quando o preço unitário for maior do que 3000, Classe B quando o preço estiver entre 1000 e 3000 e Classe C quando o preço for menor do que 1000.

Utilizando CASE WHEN SQL nosso código ficará assim:

SQL
SELECT
    Nome_Produto,
    Preco_Unit,
    CASE
        WHEN Preco_Unit >= 3000 THEN 'CLASSE A'
        WHEN Preco_Unit >= 1000 THEN 'CLASSE B'
        ELSE 'CLASSE C'
END AS Classe_Produto
FROM produtos;

Como resultado desse código teremos a seguinte tabela:

CASE WHEN no SQL – Estruturas Condicionais no SQL com mais de uma Condição

Importante se atentar para o fato de que a avaliação das condições é feita de cima para baixo. Logo, quando uma é satisfeita, as condições abaixo são ignoradas. Por isso, os produtos acima de 3000, que por consequência também são acima de 1000, aparecem apenas como Classe A.

Uma dica para saber quantas estruturas condicionais no SQL você precisará criar é verificar o número de classificações que você deseja fazer menos 1. Nesse caso, tínhamos 3 condições, logo precisamos criar 2 CASE WHEN no SQL.

Perguntas frequentes

1. Qual a sintaxe do CASE WHEN no SQL?

A estrutura fica dentro do SELECT e segue o formato: CASE WHEN condição1 THEN resultado1 WHEN condição2 THEN resultado2 ELSE resultado END. Ela começa com CASE, testa as condições com WHEN e THEN, define um padrão com ELSE e termina com END, normalmente seguido de AS para nomear a coluna.

2. Para que serve o ELSE no CASE WHEN?

O ELSE define o resultado retornado quando nenhuma das condições WHEN é verdadeira, funcionando como o ‘caso contrário’ da estrutura. Ele é opcional: sem o ELSE, as linhas que não atendem a nenhuma condição recebem NULL. Usar o ELSE garante um valor padrão claro para todos os registros.

3. Como usar o CASE WHEN com várias condições?

Basta encadear vários blocos WHEN … THEN antes do ELSE. As condições são avaliadas de cima para baixo e a primeira verdadeira determina o resultado, ignorando as demais. Para classificar em N faixas, você precisa de N menos 1 condições WHEN; por exemplo, três classes de preço exigem dois WHEN e um ELSE.

4. A ordem das condições no CASE WHEN importa?

Sim, a ordem é decisiva. O SQL avalia os WHEN de cima para baixo e para na primeira condição verdadeira, ignorando as seguintes. Por isso, condições mais restritivas devem vir antes: um produto acima de 3000, que também é maior que 1000, será classificado apenas pela primeira faixa que satisfizer.

Conclusão – CASE WHEN no SQL – Estruturas Condicionais no SQL

Nesta aula, você aprendeu a realizar classificações de informações no SQL através da estrutura CASE WHEN.

Exploramos o funcionamento das estruturas condicionais no SQL e como aplicá-las para categorizar dados com uma ou mais condições a serem analisadas.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Posts mais recentes de SQL

Posts mais recentes da Hashtag Treinamentos