SQL ORDER BY: aprenda a ordenar os resultados da sua pesquisa
Com o SQL ORDER BY, pode ordenar os resultados da pesquisa para consultas de dados por ordem crescente ou decrescente. Ao ordenar os dados da sua tabela de destino por linhas e colunas, será muito mais fácil encontrar os dados que procura, o que acelera as análises de dados e as consultas de conjuntos complexos.
O que é o comando SQL ORDER BY?
O comando ORDER BY no SQL é utilizado para ordenar dados e resultados de conjuntos de dados simples ou complexos na tabela de destino. Com ele, é possível especificar que os dados de destino sejam ordenados em ordem crescente ou decrescente, ficando assim organizados e fáceis de consultar. Por predefinição, o comando ordena os dados da consulta por ordem ascendente, ou seja, de A a Z ou do valor mais baixo para o mais alto. Se preferir uma ordem diferente, deve introduzir a palavra-chave ASC para ascendente ou DESC para descendente.
Pode selecionar uma ou várias colunas para ordenar os resultados da sua consulta. A função ORDER BY é fundamental, pois apresenta os dados de forma organizada, permitindo assim consultar os dados de forma rápida e eficaz. ORDER BY é frequentemente utilizada em conjunto com SQL SELECT, SQL WHERE e, dependendo do caso, com outros operadores SQL ou funções como SQL GROUP BY
Gostaria de trabalhar com SQL, mas não tem os conhecimentos necessários para isso? Na nossa introdução ao SQL com exemplos, pode aprender o básico para começar a utilizar esta linguagem de programação.
A sintaxe do SQL ORDER BY
A sintaxe do ORDER BY é a seguinte:
SELECT columnaA, columnaB, … o *
FROM tabla
ORDER BY columnaA, columnaB, … (opcional: ASC o DESC)sqlSe especificar apenas uma coluna após o número ORDER BY, obterá uma coluna com os resultados ordenados. Se especificar várias colunas, a cláusula ordena primeiro todos os resultados de acordo com a coluna A. Se houver entradas idênticas em linhas diferentes, a cláusula ordena as entradas de acordo com a coluna B.
Podes ampliar a sintaxe do SQL ORDER BY com os operadores ou parâmetros que desejares. Através da cláusula WHERE, defines, por exemplo, condições adicionais para limitar os resultados da consulta. Para utilizar esta cláusula, deves escrever o seguinte:
SELECT columnaA, columnaB, … o *
FROM tabla
WHERE columnaA = 'condición'
ORDER BY columnaA, columnaB, … (opcional: ASC o DESC)sqlPodem ser utilizados estes parâmetros:
SELECT: através da instrução SQL SELECT, pode definir quais os dados que pretende analisar. Com o asterisco*, especifica se a consulta se aplica a todo o conjunto de dados ou pode indicar nomes de colunas para examinar colunas específicas.FROM: define de que tabela os dados são consultados.WHERE: a cláusula opcional SQL WHERE permite definir uma condição específica segundo a qual os resultados devem ser ordenados. Neste caso, pode utilizar operadores de comparação adicionais, como=, ou operadores como SQL LIKE ou SQL NOT.ORDER BY: define de acordo com que valor os resultados devem ser ordenados. Se não adicionar nemASCnemDESC, a ordem será automaticamente alfabética ou numérica descendente.
A cláusula ORDER BY ordena os valores NULL em função da base de dados utilizada e da sequência de ordenação escolhida. No SQLite, MySQL e SQL Server, o comando trata os valores NULL como os valores mais baixos, pelo que, quando ordenados em ordem crescente, ficam no início. No Oracle e no PostgreSQL, os valores NULL são considerados os valores mais altos, pelo que, quando ordenados em ordem crescente, ficam no final.
As utilizações do ORDER BY
Estas são algumas das possíveis aplicações do SQL ORDER BY:
- classificar informações sobre produtos por nome, categoria ou preço;
- classificar transações por quantidade, data ou nome;
- ordenar pedidos por quantidade ou avaliações;
- ordenar funcionários por salário, atribuições, desempenho ou departamento;
- criar listas de inventário por quantidade ou nome;
- ordenar entregas por código postal ou número de rastreio;
- ordenar listas de clientes por região ou idade.
Exemplos de SQL ORDER BY
A seguir, explicamos como funciona ORDER BY através de três exemplos.
Ordenar produtos por preço
Imagina que, na tabela «Produtos», precisas de ordenar os produtos da categoria «Beleza» por preço, em ordem crescente. Para isso, deves utilizar FROM para definir a categoria que pretendes ordenar. Em seguida, introduz ORDER BY e ASC para ordenar por preço em ordem crescente, da seguinte forma:
SELECT *
FROM Productos
WHERE categoría = 'Belleza'
ORDER BY precio ASC;sqlFiltrar grupos de clientes
Imagina que, na tabela «Clientes», pretendes ordenar alfabeticamente os nomes dos clientes provenientes da Alemanha. Para tal, deves utilizar a condição «país» e, para ordenar de A a Z, deves adicionar ASC. Se quisesses ordenar de Z a A, deverias introduzir DESC após o comando ORDER BY do SQL. Escrever-se-ia assim:
SELECT *
FROM Clientes
WHERE país = 'Alemania'
ORDER BY nombre DESC;sqlOrdenar com várias condições
Imagina que, na tabela «Produtos», precisas de obter os registos da categoria «Eletrónica» por quantidade, por ordem alfabética ascendente. E, se a quantidade do pedido for idêntica, queres ordenar os pedidos por região. A sintaxe seria a seguinte:
SELECT *
FROM Productos
WHERE categoría = 'Electrónica'
ORDER BY cantidad ASC, región DESC;sqlAlternativas ao SQL ORDER BY
Basicamente, não existe uma alternativa que tenha a mesma função que ORDER BY, mas entre os comandos SQL que costumam ser utilizados em combinação com o SQL ORDER BY encontra-se o SQL GROUP BY. Enquanto que com GROUP BY é possível agrupar conjuntos de dados de colunas, por exemplo, por categoria, com ORDER BY também é possível ordená-los.
Por exemplo, imagine que pretende agrupar o número de encomendas dos clientes por país e, em seguida, ordená-las por média de encomendas em ordem crescente, utilizando a função de agregação AVG do SQL. Esta é a sintaxe que deve utilizar:
SELECT país, AVG(cantidad)
FROM Clientes
WHERE categoría = 'Electrónica'
GROUP BY país
ORDER BY AVG(cantidad) ASC;sqlA cláusula SQL HAVING também permite ordenar conjuntos de dados de acordo com critérios e condições definidos. Ao utilizar LIMIT, é possível limitar o número de resultados.