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 o SQL. Ela vive dentro do 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 studentsCada WHEN é verificado de cima para baixo; a primeira correspondência vence. O ELSE é opcional. Sem ele, as linhas sem correspondência recebem NULL.
Sempre termine com END e dê um nome à coluna com AS.
Desafio
FácilTabelas 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'quandosalary >= 150000(qualquer departamento)'senior'quandodepartment = 'eng'esalary >= 100000'mid'quandosalary >= 60000'entry'caso contrário
Ordene por salary em ordem decrescente. Note que a ordem das ramificações WHEN importa: a primeira correspondência vence.
Experimente você mesmo
SELECT name, department,
-- tier com múltiplos ramos WHEN que misturam salary e department
FROM employees
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.