Menu
Coddy logo textTech

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 é apenas para SELECT. Você pode colocá-lo dentro do ORDER BY para ordenar as rows por uma regra personalizada that 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
    END

Note a forma mais curta: CASE column WHEN value THEN .... Ela é equivalente a WHEN column = value. Use a que parecer mais legível.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>tasks</strong>: <strong>id</strong>, <strong>title</strong>, <strong>priority</strong>

Retorne title e priority, ordenados de modo que 'critical' venha primeiro, depois 'high', depois 'low', e qualquer outro por último. Dentro da mesma prioridade, ordene por title alphabetically.

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 e, em seguida, desempata alfabeticamente
    id
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

Pratique por conta própria: Playground de SQL