SQL ORDER BY: Como organizar resultados de consultas
Com a cláusula SQL ORDER BY, você organiza resultados de consultas de dados de acordo com as suas necessidades específicas, em ordem crescente ou decrescente. Ao ordenar dados, na tabela alvo, em linhas e colunas, você melhora a visualização e a legibilidade deles. Use SQL ORDER BY para otimizar e acelerar análises de dados e consultas em conjuntos de dados complexos.
O que é o comando SQL ORDER BY?
Se você deseja ordenar dados e resultados de conjuntos de dados, simples ou complexos, na tabela alvo, utilize a cláusula SQL ORDER BY. Com ela, você pode definir que os resultados de uma consulta de dados sejam apresentados em ordem crescente ou decrescente. Assim, você obterá resultados de consultas mais bem organizados e fáceis de ler. Por padrão, o comando organiza os dados consultados em ordem crescente, ou seja, de A a Z ou do menor ao maior valor. Se preferir outra ordem, faça uso de palavras-chave opcionais, como ASC (ascendente) e DESC (descendente).
Você pode definir uma ou várias colunas para exibir resultados de uma consulta. Por apresentar dados de forma organizada, ORDER BY desempenha um papel importante em consultas de dados ordenadas e rápidas. A cláusula é frequentemente utilizada em combinação com SQL SELECT, SQL WHERE e, dependendo do caso, com outros operadores SQL ou funções, como SQL GROUP BY.
Quer saber mais sobre SQL, mas tem pouca experiência? Nosso guia introdutório ao SQL facilitará o seu aprendizado dessa linguagem de banco de dados tão requisitada.
Sintaxe de SQL ORDER BY
A sintaxe da cláusula ORDER BY é a seguinte:
SELECT ColunaA, ColunaB, … ou *
FROM Tabela
ORDER BY ColunaA, ColunaB, … (opcional: ASC ou DESC)sqlSe você especificar apenas uma coluna após ORDER BY, obterá uma coluna com resultados ordenados. Se especificar várias colunas, a cláusula primeiramente ordenará todos os resultados pela ColunaA. Se houver entradas idênticas em diferentes linhas, ela organizará as entradas pela ColunaB.
Você pode expandir a sintaxe de SQL ORDER BY com operadores e parâmetros. Com a cláusula WHERE, por exemplo, você define condições adicionais para restringir os resultados da consulta. A sintaxe, em combinação com WHERE, é a seguinte:
SELECT ColunaA, ColunaB, … ou *
FROM Tabela
WHERE ColunaA = 'Condição de Busca'
ORDER BY ColunaA, ColunaB, … (opcional: ASC ou DESC)sqlEsses parâmetros podem ser utilizados:
SELECT: Com SQLSELECT, você define quais dados deseja analisar. Use um asterisco*para consultar o conjunto de dados completo ou especifique os nomes das colunas, caso deseje examinar colunas específicas.FROM: Define a tabela cujos dados devem ser consultados.WHERE: Com a cláusula opcional SQLWHERE, você define uma condição específica de busca para ordenar os resultados. Aqui, o operador de comparação=, ou os operadores SQLLIKEe SQLNOTpodem ser utilizados.ORDER BY: Define qual valor será usado para ordenar os resultados. Se você não adicionarASCouDESC, a ordem será automaticamente alfabética ou numericamente decrescente.
A cláusula SQL ORDER BY organiza valores NULL automaticamente ou de acordo com a ordem escolhida, dependendo do banco de dados. Em bancos de dados SQLite, MySQL e SQL Server, a cláusula interpreta valores NULL como os menores valores: na ordem crescente, eles aparecem no início. Em bancos de dados Oracle e PostgreSQL, valores NULL são considerados os maiores valores: na ordem crescente, eles aparecem no final.
Aplicações de SQL ORDER BY
Alguns casos práticos para a utilização da cláusula SQL ORDER BY incluem:
- Ordenar informações de produtos por nome, categoria ou preço.
- Organizar transações por valor, data ou nome.
- Ordenar pedidos por quantidade ou avaliações.
- Classificar funcionários por salário, tarefas, desempenho ou departamento.
- Listar inventários por quantidade ou nome.
- Ordenar entregas por código postal ou número de rastreamento.
- Ordenar listas de clientes por região ou idade.
Exemplos práticos de SQL ORDER BY
Para ilustrar o funcionamento da cláusula SQL ORDER BY, elaboramos três exemplos práticos:
Ordenar produtos por preço
Para ordenar produtos da categoria “Beleza”, em uma tabela “Produtos”, por preço e em ordem crescente, defina, com FROM que categoria deve ser ordenada. Com ORDER BY e ASC, você especifica que deseja ordenar por “Preço” e em ordem crescente. Observe:
SELECT *
FROM Produtos
WHERE Categoria = 'Beleza'
ORDER BY Preço ASC;sqlFiltrar grupos de clientes
Em uma tabela “Clientes”, você deseja ordenar alfabeticamente todos os clientes do Brasil usando a condição de ordenação “País”. Para organizar de A a Z, não é necessário adicionar ASC. Se desejar ordenar de Z a A, adicione DESC ao comando SQL ORDER BY:
SELECT *
FROM Clientes
WHERE País = 'Brasil'
ORDER BY Nome DESC;sqlOrdenando com várias condições
Você deseja ordenar as entradas da categoria “Eletrônicos”, em uma tabela “Produtos”, pela quantidade de pedidos em ordem alfabética crescente. Para entradas com a mesma quantidade de pedidos, a ordenação deve respeitar a região. A sintaxe é a seguinte:
SELECT *
FROM Produtos
WHERE Categoria = 'Eletrônicos'
ORDER BY Quantidade_Pedidos ASC, Região DESC;sqlAlternativas a SQL ORDER BY
Basicamente, não existe uma alternativa que exerça a mesma função de ORDER BY. No entanto, um dos comandos SQL frequentemente utilizados em combinação com o ORDER BY é o SQL GROUP BY. Enquanto o GROUP BY agrupa registros de colunas por categoria, por exemplo, você pode adicionalmente ordená-los com o ORDER BY.
Exemplo: Você deseja agrupar o valor do pedido dos clientes por país e, em seguida, ordenar de forma crescente pela quantidade média de pedidos, o que pode ser feito pela função de agregação SQL AVG. A sintaxe é a seguinte:
SELECT País, AVG(Quantidade_Pedidos)
FROM Clientes
WHERE Categoria = 'Eletrônicos'
GROUP BY País
ORDER BY AVG(Quantidade_Pedidos) ASC;sqlCom a cláusula SQL HAVING, você pode filtrar os registros ordenados por critérios e condições específicos. Com LIMIT, é possível restringir a quantidade de resultados a um número desejado.

