ORDER BY com uma ou várias colunas
Ordene os resultados de forma crescente ou decrescente, ordene por várias colunas e controle onde os valores NULL ficam com NULLS FIRST / NULLS LAST.
ORDER BY com uma ou várias colunas é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
Por que você precisa de ORDER BY
Uma tabela SQL é um conjunto sem ordenação. Sem ORDER BY, o banco de dados pode retornar as linhas em qualquer ordem — e essa ordem pode mudar entre as execuções. Se a ordem for importante na sua interface ou no seu relatório, faça a ordenação explicitamente.
Ordenação por uma coluna
A ordenação padrão é crescente:
SELECT id, email FROM users ORDER BY created_at; -- oldest first
SELECT id, email FROM users ORDER BY created_at ASC;
SELECT id, email FROM users ORDER BY created_at DESC; -- newest firstOrdenação por várias colunas
Liste as colunas na ordem de prioridade. A segunda coluna desfaz os empates da primeira:
SELECT first_name, last_name, age
FROM users
ORDER BY last_name ASC, first_name ASC, age DESC;Ordenação por expressão
Você pode ordenar por qualquer expressão:
SELECT email, full_name
FROM users
ORDER BY LENGTH(email) DESC, email ASC;Ordenação por alias ou posição
Você pode referenciar um alias da lista de SELECT ou sua posição baseada em 1:
SELECT id, total * 0.9 AS discounted
FROM orders
ORDER BY discounted DESC; -- by alias
SELECT id, total
FROM orders
ORDER BY 2 DESC; -- by position (avoid in code — fragile)NULLS FIRST / NULLS LAST
Controle onde os NULLs ficam:
-- Default: NULLs LAST when ASC, FIRST when DESC
SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;
SELECT * FROM users ORDER BY last_login_at ASC NULLS FIRST;Ordenações estáveis e desempates
Se várias linhas empatarem na chave de ordenação, o banco de dados poderá retorná-las em qualquer ordem. Adicione a chave primária como desempate para obter resultados determinísticos:
SELECT * FROM orders
ORDER BY created_at DESC, id DESC;ORDER BY e índices
Se existir um índice nas colunas de ORDER BY, o banco de dados poderá ler as linhas na ordem correta sem uma etapa de ordenação.
-- With index on created_at DESC, this can use the index directly:
SELECT * FROM events ORDER BY created_at DESC LIMIT 100;CASE em ORDER BY
Ordenação personalizada com CASE:
-- Show priority orders first:
SELECT * FROM orders
ORDER BY
CASE status
WHEN 'urgent' THEN 0
WHEN 'normal' THEN 1
ELSE 2
END,
created_at DESC;ORDER BY é executado após WHERE
ORDER BY opera sobre o resultado de WHERE/GROUP BY/HAVING. A filtragem acontece primeiro e, depois, a ordenação.
Não ordene tabelas enormes sem LIMIT
Ordenar um resultado com um bilhão de linhas é caro. Se você precisa apenas das primeiras N linhas, adicione LIMIT — o planejador pode mudar para uma estratégia Top-N.
SELECT * FROM events ORDER BY created_at DESC LIMIT 50;Recapitulação
ORDER BY torna os resultados determinísticos.
- ASC / DESC por coluna
- Várias colunas para desempates
- NULLS FIRST / LAST quando relevante
- Sempre combine ordenações grandes com LIMIT
Verificação rápida
Qual é a direção de ordenação padrão em SQL?
Perguntas Frequentes
A aula “ORDER BY com uma ou várias colunas” é grátis?
Sim — o texto completo de “ORDER BY com uma ou várias colunas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “ORDER BY com uma ou várias colunas”?
Ordene os resultados de forma crescente ou decrescente, ordene por várias colunas e controle onde os valores NULL ficam com NULLS FIRST / NULLS LAST. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “ORDER BY com uma ou várias colunas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Selecionando colunas e expressões
- Filtros WHERE: operadores de comparação e lógica
- ORDER BY com uma ou várias colunas
- LIMIT, OFFSET e noções básicas de paginação