Menu
Coddy logo textTech

CASE WHEN

Parte da seção Além do Básico do Journey de SQL da Coddy — lição 1 de 27.

Uma expressão CASE é um if/else if/else para SQL. Ela reside dentro de SELECT (ou ORDER BY, ou WHERE) e produz um valor por linha.

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           WHEN score >= 60 THEN 'C'
           ELSE 'F'
       END AS grade
FROM students

Cada WHEN é verificado de cima para baixo; a primeira correspondência vence. O ELSE é opcional. Sem ele, as linhas que não correspondem recebem NULL.

Sempre termine com END e dê um nome à coluna com AS.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>employees</strong>: <strong>id</strong>, <strong>name</strong>, <strong>department</strong>, <strong>salary</strong>

Para cada funcionário, retorne seu name, department e uma coluna tier construída desta forma:

  • 'partner' quando salary >= 150000 (qualquer departamento)
  • 'senior' quando department = 'eng' e salary >= 100000
  • 'mid' quando salary >= 60000
  • 'entry' caso contrário

Ordene por salary em ordem decrescente. Observe que a ordem das cláusulas WHEN importa: a primeira correspondência vence.

Folha de consulta

CASE age como um if/else dentro do SELECT, produzindo um valor por linha:

SELECT name,
       CASE
           WHEN score >= 90 THEN 'A'
           WHEN score >= 75 THEN 'B'
           ELSE 'F'
       END AS grade
FROM students
  • As condições são verificadas de cima para baixo; a primeira correspondência vence
  • ELSE é opcional — sem ele, as linhas que não corresponderem retornam NULL
  • Sempre feche com END; use AS para nomear a coluna

Experimente você mesmo

SELECT name, department,
       -- nível com múltiplas ramificações WHEN que misturam salary e department
FROM employees
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Além do Básico