CASE em ORDER BY
Parte da seção Além do Básico do Journey de SQL da Coddy. Lição 2 de 27.
CASE não serve apenas para SELECT. Você pode colocá-lo dentro de 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 .... Ela é equivalente a WHEN column = value. Use a opção que apresentar uma leitura mais clara.
Desafio
FácilTabelas e colunas disponíveis:
tasks:id,title,priority
Retorne title e priority, ordenados de modo que 'critical' venha primeiro, depois 'high', depois 'low' e qualquer outra coisa por último. Dentro da mesma prioridade, ordene por title em ordem alfabética.
Experimente você mesmo
SELECT title, priority
FROM tasks
ORDER BY
-- Substitua a ordenação placeholder abaixo por uma expressão CASE que
-- classifica as linhas da maneira que a tarefa descreve, depois desempate alfabeticamente
id
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
Pratique por conta própria: Playground de SQL