0Pricing
SQL Academy · Aula

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 first

Ordenaçã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

  1. Selecionando colunas e expressões
  2. Filtros WHERE: operadores de comparação e lógica
  3. ORDER BY com uma ou várias colunas
  4. LIMIT, OFFSET e noções básicas de paginação
← Voltar para SQL Academy