CASE WHEN
Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 1 de 27.
Una expresión CASE es un if/else if/else para SQL. Se ubica dentro de SELECT (o ORDER BY, o WHERE) y produce un valor por fila.
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 se comprueba de arriba a abajo; la primera coincidencia gana. El ELSE es opcional. Sin él, las filas que no coinciden obtienen NULL.
Siempre termina con END y dale un nombre a la columna con AS.
Desafío
FácilTablas y columnas disponibles:
<strong>employees</strong>:<strong>id</strong>,<strong>name</strong>,<strong>department</strong>,<strong>salary</strong>
Para cada empleado devuelve su name, department y una columna tier construida de la siguiente manera:
'partner'cuandosalary >= 150000(cualquier departamento)'senior'cuandodepartment = 'eng'ysalary >= 100000'mid'cuandosalary >= 60000'entry'en cualquier otro caso
Ordena por salary de forma descendente. Ten en cuenta que el orden de las ramas WHEN importa: la primera coincidencia es la que prevalece.
Pruébalo tú mismo
SELECT name, department,
-- nivel con múltiples ramas WHEN que mezclan salary y department
FROM employees
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.