CASE no ORDER BY
Parte da seção Além do Básico do Journey de SQL da Coddy — lição 2 de 27.
O CASE não serve apenas para o SELECT. Você pode colocá-lo dentro do ORDER BY para ordenar as linhas por uma regra personalizada que as colunas sozinhas não conseguem expressar.
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDObserve a forma mais curta: CASE column WHEN value THEN .... É equivalente a WHEN column = value. Use a que for de leitura mais clara.
Desafio
FácilTabelas e colunas disponíveis:
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
Retorne title e priority, ordenados de forma que 'critical' venha primeiro, depois 'high', depois 'low', e qualquer outra coisa por último. Dentro da mesma prioridade, ordene por title alfabeticamente.
Folha de consulta
Use CASE dentro de ORDER BY para ordenar por uma regra personalizada:
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
ENDA forma curta CASE column WHEN value THEN ... é equivalente a CASE WHEN column = value THEN ....
Experimente você mesmo
SELECT title, priority
FROM tasks
ORDER BY
-- ...
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.