Introdução à cláusula ORDER BY no SQL

A cláusula ORDER BY no SQL nos ajuda a categorizar nossos dados em ordem crescente ou decrescente, dependendo das colunas de nossas tabelas. ORDER BY é a palavra-chave usada em nossa consulta para nos ajudar a classificar os dados. Por padrão, alguns bancos de dados categorizam os resultados retornados pela consulta em ordem crescente. Para classificar os dados presentes nos registros em ordem decrescente, utilizamos a palavra-chave DESC em nossa consulta. Também temos a palavra-chave ASC para categorizar os dados em ordem crescente, embora na maioria das vezes não os utilizemos devido às configurações padrão do banco de dados.

Parâmetros da cláusula ORDER BY no SQL

  • nome_da_coluna: indica o nome da coluna que queremos recuperar com base na qual os dados devem ser organizados.
  • nome_tabela: indica o nome da tabela na qual os registros devem ser obtidos. Precisamos ter pelo menos um nome de tabela nesse parâmetro.
  • WHERE condition: Este é um parâmetro opcional. A cláusula WHERE contém as condições que devemos atender para que os dados sejam escolhidos.
  • ASC : esta é a palavra-chave usada para classificar os dados da coluna em ordem crescente. Se nenhuma palavra-chave for mencionada, os dados serão classificados em ordem crescente por padrão.
  • DESC: esta é a palavra-chave usada para classificar os dados da coluna em ordem decrescente.
  • |: Este é apenas um indicador para "OR", pois devemos usar ASC ou DESC em nossa consulta para os resultados.

Cláusula ORDER BY

A sintaxe de ORDER BY é:

SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);

Sintaxe para classificar dados de acordo com uma única coluna

Para classificar os dados da tabela com base em uma única coluna, em ordem crescente ou decrescente, podemos utilizar as palavras-chave ASC ou DESC. Em nosso exemplo, classificaremos os dados em ordem crescente, usando a palavra-chave ASC.

Sintaxe

SELECT * FROM table_name ORDER BY column_name ASC

A sintaxe para classificar dados de acordo com várias colunas

Para classificar os dados da tabela com base em várias colunas, em ordem crescente ou decrescente, podemos utilizar as palavras-chave ASC ou DESC. Para mencionar as várias colunas segundo as quais classificaremos os dados, precisamos mencionar os nomes das colunas separadas pelo operador de vírgula (, ). Em nosso exemplo, classificaremos os dados em ordem crescente, usando a palavra-chave ASC.

Sintaxe

SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC

Exemplos da cláusula ORDER BY

Vejamos vários exemplos para entender melhor a cláusula ORDER BY.

1. Exemplo para classificar os resultados em uma ordem crescente

Para categorizar os resultados em ordem crescente, podemos usar a palavra-chave ASC. Se nenhuma palavra-chave, ASC ou DESC, foi fornecida, a ordem de classificação padrão é a ordem crescente. Vamos entender isso com a ajuda de um exemplo. Temos uma tabela de funcionários.

ID do EmpregadoEmployeeLastNameEmployeeFirstNameIdentificação do email
001 Donald Jo
002 Smith Jamie
003 Jones Amy
004 Reynolds Andy
005 Thomas Sally
006 Castanho Dan

Quando tentamos organizar os resultados em ordem crescente do sobrenome do funcionário, podemos usar a seguinte declaração, e o resultado a seguir é exibido na tabela a seguir.

SELECT *
FROM Employee
ORDER BY EmployeeLastName;

Resultado

ID do EmpregadoEmployeeLastNameEmployeeFirstNameIdentificação do email
006 Castanho Dan
001 Donald Jo
003 Jones Amy
004 Reynolds Andy
002 Smith Jamie
005 Thomas Sally

Este exemplo retorna todos os registros da tabela Employee, classificados em ordem crescente, de acordo com o campo EmployeeLastName. Também podemos usar a palavra-chave ASC da seguinte maneira, para obter o mesmo resultado.

SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;

2. Exemplo para classificar os resultados em uma ordem decrescente

Usamos a palavra-chave DESC quando queremos classificar nossos dados em ordem decrescente, na cláusula ORDER BY. Vamos entender isso com a ajuda de um exemplo. Temos a mesma tabela Employee contendo os seguintes dados.

ID do EmpregadoEmployeeLastNameEmployeeFirstNameIdentificação do email
001 Donald Jo
002 Smith Jamie
003 Jones Amy
004 Reynolds Andy
005 Thomas Sally
006 Castanho Dan

Precisamos apenas de Funcionários cujo CódigoDoEmpregado seja maior que 2 e precisamos que nossos dados sejam classificados em ordem decrescente. Usamos a seguinte instrução SQL para o mesmo e obtemos a tabela do conjunto de resultados com apenas 4 registros.

SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;

Resultado:

ID do Empregado EmployeeLastName EmployeeFirstName Identificação do email
006 Castanho Dan
005 Thomas Sally
004 Reynolds Andy
003 Jones Amy

3. Exemplo para classificar os resultados por sua posição relativa

Também podemos organizar nossos dados pela posição relativa das colunas, onde 1 representa o primeiro campo, 2 representa o segundo campo, 3 representa o terceiro campo e assim por diante. Vamos tentar organizar os dados em nossa tabela de funcionários de acordo com as posições relativas.

ID do EmpregadoEmployeeLastNameEmployeeFirstNameo email
001 Donald Jo
002 Smith Jamie
003 Jones Amy
004 Reynolds Andy
005 Thomas Sally
006 Castanho Dan

Usando a instrução SQL da seguinte forma, podemos organizar os dados em ordem decrescente de EmployeeID. Também afirmamos que precisamos apenas de duas colunas da tabela, ou seja, EmployeeID e EmployeeLastName, além de usar a cláusula WHERE para mencionar que não queremos nenhuma linha que contenha o EmployeeID 003.

SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;

Resultado

ID do EmpregadoEmployeeLastName
006 Castanho
005 Thomas
004 Reynolds
002 Smith
001 Donald

Como a coluna na posição 1 é EmployeeID, o conjunto de resultados é classificado de acordo com EmployeeID.

Conclusão

No SQL, a instrução SELECT não retorna dados em nenhuma ordem específica. Para garantir um pedido específico, usamos a cláusula ORDER BY. ORDER BY classifica com base em uma ou mais colunas. Os registros são retornados em ordem crescente ou decrescente. Se a palavra-chave ASC ou DESC não tiver sido fornecida, os resultados serão classificados em ordem crescente.

Artigo recomendado

Este foi um guia para a cláusula ORDER BY no SQL. Aqui discutimos os parâmetros e diferentes exemplos da cláusula ORDER BY, juntamente com a sintaxe. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Vantagens do NoSQL
  2. Ferramentas de Gerenciamento SQL
  3. Funções de seqüência de caracteres T-SQL
  4. Tipos de dados PostgreSQL
  5. Diferentes tipos de dados SQL com exemplos