Se você deseja tornar suas consultas SQL mais flexíveis e adaptáveis, o CASE WHEN no SQL é a ferramenta ideal. Com essa expressão condicional, é possível definir regras personalizadas dentro de SELECT, UPDATE, GROUP BY e muito mais. Se você precisa categorizar dados, criar classificações ou tomar decisões dinâmicas diretamente no banco, o CASE WHEN será seu grande aliado.
Neste artigo, vou te mostrar como usar CASE WHEN no SQL, com exemplos práticos para facilitar o aprendizado. Vamos nessa?
O que é o CASE WHEN no SQL?
O CASE WHEN é uma estrutura condicional que funciona como um IF dentro das consultas SQL. Ele permite definir regras para manipular os resultados retornados, tornando suas queries mais inteligentes.
A estrutura básica é assim:
SELECT coluna,
CASE
WHEN condição1 THEN resultado1
WHEN condição2 THEN resultado2
ELSE resultado_padrao
END AS nome_da_nova_coluna
FROM tabela;
Agora, vamos ver isso na prática!
Exemplo 1: Classificando Idades com CASE WHEN
Imagine que você tem uma tabela chamada clientes e deseja classificar os clientes em Jovem, Adulto ou Sênior, com base na idade. Veja como usar CASE WHEN no SQL para isso:
SELECT nome, idade,
CASE
WHEN idade < 18 THEN 'Jovem'
WHEN idade BETWEEN 18 AND 59 THEN 'Adulto'
ELSE 'Sênior'
END AS faixa_etaria
FROM clientes;
Isso retornará uma nova coluna chamada faixa_etaria, categorizando os clientes de forma automática.
Exemplo 2: Criando Descontos com CASE WHEN
Agora, suponha que você tem uma tabela pedidos e deseja aplicar um desconto com base no valor da compra:
SELECT cliente, valor_pedido,
CASE
WHEN valor_pedido >= 500 THEN '10% de desconto'
WHEN valor_pedido BETWEEN 200 AND 499 THEN '5% de desconto'
ELSE 'Sem desconto'
END AS desconto
FROM pedidos;
Com isso, cada cliente verá automaticamente o desconto correspondente ao seu pedido.
Exemplo 3: CASE WHEN no UPDATE
Além do SELECT, você pode usar CASE WHEN no SQL para atualizar dados. Suponha que você queira atualizar a coluna status dos pedidos com base no valor total:
UPDATE pedidos
SET status = CASE
WHEN valor_pedido >= 500 THEN 'Aprovado'
WHEN valor_pedido BETWEEN 200 AND 499 THEN 'Pendente'
ELSE 'Rejeitado'
END;
Essa instrução ajusta o status automaticamente conforme o valor do pedido.

Introdução à Linguagem SQL: Abordagem Prática Para Iniciantes
Quer entender como acessar e transformar dados de maneira relevante? Com este guia prático, você aprenderá a dominar os conceitos essenciais do SQL, criar bancos de dados eficientes e realizar consultas poderosas. Descubra como manipular dados com SELECT, WHERE, GROUP BY e muito mais.
👉 Garanta o seu aqui!
Exemplo 4: Contando Registros com CASE WHEN
Outra aplicação poderosa é contar registros que atendem a condições específicas. Suponha que você quer contar quantos clientes são jovens, adultos e seniores:
SELECT
SUM(CASE WHEN idade < 18 THEN 1 ELSE 0 END) AS jovens,
SUM(CASE WHEN idade BETWEEN 18 AND 59 THEN 1 ELSE 0 END) AS adultos,
SUM(CASE WHEN idade >= 60 THEN 1 ELSE 0 END) AS seniores
FROM clientes;
Isso retorna três contadores distintos, sem precisar de múltiplas consultas.
Conclusão
O CASE WHEN no SQL é um verdadeiro coringa para criar consultas mais dinâmicas e inteligentes. Ele permite classificar dados, aplicar regras de negócio e até mesmo modificar registros com muita flexibilidade. Agora que você viu como essa função funciona na prática, que tal testar no seu banco de dados?
Se esse conteúdo te ajudou, compartilhe e deixe um comentário com sua dúvida ou experiência! Aproveite para conferir outros artigos relacionados abaixo!