# 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`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-select/), [SQL `WHERE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-where/) e, dependendo do caso, com outros [operadores SQL](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/operadores-sql/) ou funções, como [SQL `GROUP BY`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-having/).

Dica Quer saber mais sobre [SQL](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-sql/), mas tem pouca experiência? Nosso [guia introdutório ao SQL](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/aprender-sql-com-exemplos/ "Aprender SQL com exemplos") 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:

```sql
SELECT  ColunaA, ColunaB, …  ou * 
FROM  Tabela 
ORDER BY  ColunaA, ColunaB, …  (opcional: ASC ou DESC)
```

Nota Se 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:

```sql
SELECT  ColunaA, ColunaB, …  ou * 
FROM  Tabela 
WHERE  ColunaA  =  'Condição de Busca' 
ORDER BY  ColunaA, ColunaB, …  (opcional: ASC ou DESC)
```

Esses parâmetros podem ser utilizados:

- `SELECT`: Com SQL `SELECT`, 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 [SQL `WHERE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-where/), você define uma condição específica de busca para ordenar os resultados. Aqui, o operador de comparação `=`, ou os operadores [SQL `LIKE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-like/) e [SQL `NOT`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-not/) podem ser utilizados.
- `ORDER BY`: Define qual valor será usado para ordenar os resultados. Se você não adicionar `ASC` ou `DESC`, a ordem será automaticamente alfabética ou numericamente decrescente.

Nota 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:

```sql
SELECT  * 
FROM  Produtos 
WHERE  Categoria  = 'Beleza' 
ORDER BY  Preço  ASC;
```

### Filtrar 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`:

```sql
SELECT  * 
FROM  Clientes 
WHERE  País = 'Brasil' 
ORDER BY  Nome  DESC;
```

### Ordenando 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:

```sql
SELECT  * 
FROM  Produtos 
WHERE  Categoria  =  'Eletrônicos' 
ORDER BY  Quantidade_Pedidos ASC,  Região  DESC;
```

## Alternativas 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`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-having/). 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`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-avg/). A sintaxe é a seguinte:

```sql
SELECT  País, AVG(Quantidade_Pedidos) 
FROM  Clientes 
WHERE  Categoria = 'Eletrônicos' 
GROUP BY  País 
ORDER BY  AVG(Quantidade_Pedidos) ASC;
```

Com a cláusula [SQL `HAVING`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/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.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-order-by/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/sql-order-by/) for AI/LLM consumption.