Ordenação de Resultados em Consultas SQL com ORDER BY

A organização dos dados retornados por uma consulta é fundamental para a análise de informações. Em SQL, essa tarefa é raelizada por meio da cláusula ORDER BY, que permite reordenar o conjunto de resultados com base em uma ou mais colunas específicas.

Fundamentos da Cláusula ORDER BY

A cláusula ORDER BY deve ser posicionada sempre ao final da instrução SELECT. Ela instrui o banco de dados a organizar as linhas recuperadas antes de entregá-las ao cliente. É importante notar que é possível ordenar os dados inclusive por colunas que não foram incluídas na lista de seleção do SELECT.


-- Ordenando uma lista de produtos pelo nome de forma alfabética
SELECT nome_produto 
FROM Inventario 
ORDER BY nome_produto;

-- Ordenando pelo ID do fornecedor, mesmo sem exibi-lo no resultado
SELECT nome_produto 
FROM Inventario 
ORDER BY id_fornecedor;

Ordenação por Múltiplas Colunas

Frequentemente, é necessário refinar a ordenação quando existem valores duplicados em uma coluna. Para isso, bastta listar as colunas desejadas separadas por vírgulas. O banco de dados processará a ordenação na sequência exata em que as colunas foram declaradas: a segunda coluna só será utilizada como critério de desempate se os valores da primeira forem idênticos.


-- Ordena primeiro pelo preço e, para preços iguais, pelo nome do item
SELECT id_item, preco_unitario, descricao_item 
FROM Catalogo 
ORDER BY preco_unitario, descricao_item;

Ordenação baseada na Posição da Coluna

O SQL permite referenciar as colunas pela sua posição numérica na instrução SELECT, em vez de usar seus nomes literais. Embora essa técnica reduza a digitação, ela é considerada uma prática de risco em ambientes produtivos, pois alterações na estrutura da query (como adicionar ou remover colunas) podem quebrar a lógica de ordenação silenciosamente.


-- O número 2 refere-se a 'preco_venda' e o 3 a 'nome_comercial'
SELECT id_sku, preco_venda, nome_comercial 
FROM Produtos 
ORDER BY 2, 3;

Definindo a Direção da Ordenação (ASC e DESC)

Por padrão, a ordenação no SQL é ascendente (do menor para o maior ou de A a Z). Caso seja necessário inverter essa lógica, utiliza-se a palavra-chave DESC (abreviação de DESCENDING). A palavra-chave ASC pode ser usada para reforçar a ordenação ascendente, embora seja opcional.

Um detalhe crucial: o modificador DESC aplica-se exclusivamente à coluna que o precede. Para ordenar múltiplas colunas de forma decrescente, o comando deve ser aplicado individualmente a cada uma delas.


-- Ordenação decrescente simples por valor
SELECT ref_codigo, valor_mercadoria 
FROM Estoque 
ORDER BY valor_mercadoria DESC;

-- Ordenação mista: preço decrescente e nome ascendente (padrão)
SELECT ref_codigo, valor_mercadoria, nome_artigo 
FROM Estoque 
ORDER BY valor_mercadoria DESC, nome_artigo;

Tags: SQL banco de dados MariaDB postgresql Queries

Publicado em 6-14 16:38 por Thomas