Bê-á-bá do SQL: Usando ORDER BY e LIMIT

Bê-á-bá do SQL: Usando ORDER BY e LIMIT

Material de apoio:
1. Antes de iniciar esse tutorial, acesse a introdução da série de tutoriais clicando aqui, siga o passo a passo para usar a nossa plataforma interativa de SQL e pratique em tempo real
2. Participe do nosso canal do slack, onde você poderá tirar dúvidas sobre os tutoriais e também acessar conteúdo exclusivo do universo de dados, clicando aqui

Confira também os posts anteriores da série:
1. Introdução
2. Estrutura do SELECT
3. Filtrando valores com o WHERE
4. Agrupando valores com o GROUP BY

Os comandos ORDER BY e LIMIT acontecem no final da query e servem para alterar o resultado final dela, ordenando os valores e limitando-os, consecutivamente.

ORDER BY

A sintaxe básica do ORDER BY é a seguinte:

SELECT coluna1, SUM(coluna2)
FROM nome_tabela
WHERE coluna1 = condicao
GROUP BY coluna1
ORDER BY coluna2

Para exemplificar vamos considerar a tabela "pessoas" da nossa base de dados:

O atributo alt desta imagem está vazio. O nome do arquivo é image-1.png

Ordenando valores em ordem ascendente

SELECT *
FROM pessoas
ORDER BY idade ASC

Por padrão o ORDER BY irá ordenar os valores de forma ascendente sem que seja necessário mais nenhum comando, porém também pode ser usada a cláusula ASC (ascendente) ao final da sentença para indicar a ordenação. No exemplo acima, estamos selecionando todas as colunas da tabela "pessoas" e ordenando-as pela coluna "idade":

Ordenando valores em ordem descendente

SELECT *
FROM pessoas
ORDER BY idade DESC

Ao indicar ao final da sentença a cláusula DESC a ordenação será feita de forma descendente (do maior para o menor):

Ordenando valores por várias colunas

SELECT *
FROM pessoas
ORDER BY idade, id

A query acima seleciona todas as colunas da tabela "pessoas", ordenando-as pelas colunas "idade" e "id". Isso significa que a primeira ordenação será por idade, porém se houver mais de uma pessoa com a mesma idade, então essas pessoas serão ordenadas pela coluna "id":

Também é possível ordenar a query por várias colunas dando ordens diferentes para cada uma:

SELECT *
FROM pessoas
ORDER BY idade DESC, id ASC

Na query acima estamos ordenando os resultados por idade de forma descendente e por id de forma ascendente:

LIMIT

O comando LIMIT tem a função de limitar as linhas que serão exibidas no resultado da query.

SELECT *
FROM pessoas
LIMIT 2

No código acima, ao usar o comando "LIMIT 2" estamos indicando que somente as duas primeiras linhas devem aparecer no resultado final da query. Note que as linhas trazidas no resultado correspondem aos ids 1 e 2:

Ao usar o comando LIMIT combinado com o comando OFFSET é possível pular as primeiras linhas que irão aparecer no resultado:

SELECT *
FROM pessoas
LIMIT 2 OFFSET 4

No caso da query acima estamos indicando que retornem apenas duas linhas a partir da linha 4. Neste caso os ids que retornam são 5 e 6, pois foram puladas todas as linhas até a quarta:

Não deixe de conferir os post anteriores da nossa série de tutoriais, e fique de olho no nosso blog para acompanhar os próximos!

E para testar a plataforma Kondado gratuitamente por 14 dias, basta clicar no link abaixo:

Perguntas frequentes

O que é o comando ORDER BY em SQL e como ele funciona?
O ORDER BY é um comando SQL que ordena os resultados de uma query. Por padrão, ele ordena os valores de forma ascendente (ASC), do menor para o maior. Você também pode usar a cláusula DESC para ordenação descendente. É possível ordenar por uma ou várias colunas, inclusive com ordens diferentes para cada uma, como ORDER BY idade DESC, id ASC.
Qual a diferença entre ASC e DESC no ORDER BY?
ASC (ascendente) ordena do menor para o maior — é o padrão do ORDER BY, não sendo obrigatório escrevê-lo. DESC (descendente) ordena do maior para o menor, e deve ser explicitamente indicado ao final da coluna desejada, como em ORDER BY idade DESC.
Como ordenar uma query SQL por várias colunas ao mesmo tempo?
Basta separar as colunas por vírgula no comando ORDER BY, como em ORDER BY idade, id. A ordenação ocorre primeiro pela primeira coluna (idade); se houver valores iguais, esses registros são então ordenados pela segunda coluna (id). Você também pode misturar direções: ORDER BY idade DESC, id ASC ordena idade de forma descendente e id de forma ascendente.
Para que serve o comando LIMIT em SQL?
O LIMIT restringe o número de linhas exibidas no resultado da query. Por exemplo, LIMIT 2 retorna apenas as duas primeiras linhas. É útil quando você precisa visualizar apenas uma amostra dos dados ou paginar resultados, especialmente ao trabalhar com grandes volumes de dados em integração de dados.
Como funciona a combinação de LIMIT com OFFSET?
O OFFSET permite pular um número específico de linhas antes de começar a retornar resultados. A sintaxe é LIMIT 2 OFFSET 4, que pula as 4 primeiras linhas e retorna apenas 2 linhas a partir da quinta. No exemplo do artigo, isso retornou os registros com ids 5 e 6, pulando os ids 1 a 4.
Em que ordem os comandos SQL devem aparecer na query?
A ordem correta é: SELECTFROMWHEREGROUP BYORDER BYLIMIT. O ORDER BY e o LIMIT sempre vêm no final da query, pois servem para alterar o resultado final — ordenando os valores e limitando as linhas, respectivamente. Para praticar esses conceitos em uma plataforma interativa, você pode criar uma conta gratuita na Kondado por 14 dias.

Escrito por·Publicado em 2020-11-17·Atualizado em 2026-05-04