Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL ORDER BY

A cláusula `ORDER BY` no PostgreSQL é utilizada para classificar o conjunto de resultados de uma consulta por uma ou mais colunas. Ele pode classificar os dados em ordem crescente (padrão) ou decrescente para tornar a análise e a visualização de dados mais intuitivas.

Uso

A cláusula `ORDER BY` é usada quando você precisa organizar os resultados da consulta em uma ordem específica. Essa cláusula segue a instrução `SELECT` e pode ser combinada com outras cláusulas, como `WHERE` e `GROUP BY`.


SELECT column1, column2, ...
FROM table_name
[WHERE condition]
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

Nessa sintaxe, `ORDER BY column1 [ASC|DESC]` especifica a coluna usada para classificação e a ordem de classificação, que pode ser ascendente (`ASC`) ou descendente (`DESC`).

Exemplos

1. Pedidos básicos


SELECT name, age
FROM users
ORDER BY age;

Este exemplo classifica a tabela `users` pela coluna `age` em ordem crescente, que é o padrão.

2. Ordem decrescente


SELECT product_name, price
FROM products
ORDER BY price DESC;

Aqui, a tabela `produtos` é classificada pela coluna `preço` em ordem decrescente, exibindo primeiro os produtos mais caros.

3. Ordenação de várias colunas


SELECT employee_id, department, salary
FROM employees
ORDER BY department ASC, salary DESC;

Este exemplo classifica a tabela `employees` primeiro por `department` em ordem crescente e, em seguida, por `salary` dentro de cada departamento em ordem decrescente.

Dicas e práticas recomendadas

  • Especifique regras de classificação claras. Use `ASC` ou `DESC` para definir explicitamente a ordem de classificação de cada coluna.
  • Use várias colunas com sabedoria. Ao ordenar por várias colunas, verifique se a sequência faz sentido lógico para sua análise.
  • Otimize o desempenho. Considere indexar as colunas usadas em `ORDER BY` para melhorar o desempenho da consulta, especialmente com conjuntos de dados grandes.
  • Combine com `LIMIT`. Use `ORDER BY` em conjunto com `LIMIT` para obter com eficiência os registros superiores ou inferiores.
  • Trate os valores `NULL` de forma apropriada. Por padrão, os valores `NULL` são classificados como se fossem superiores aos valores não `NULL` em ordem crescente e inferiores em ordem decrescente. Use `NULLS FIRST` ou `NULLS LAST` para especificar explicitamente a posição dos valores `NULL`.
  • Considerações sobre o desempenho. Ao usar `ORDER BY` com grandes conjuntos de dados, você deve estar ciente de que a classificação pode consumir muitos recursos. A indexação das colunas envolvidas na classificação pode melhorar significativamente o desempenho.