Voltar para a lista de artigos Artigos
7 minutos de leitura

ORDEM SQL POR Cláusula com 7 Exemplos

Aprenda a usar a SQL ENCOMENDAR POR cláusula! Nossos exemplos práticos e fáceis o ajudarão a entender sua sintaxe, usos comuns e melhores práticas.

SQL ou Structured Query Language permite que você "fale" com um banco de dados. Ela permite criar, recuperar e manipular os dados em um banco de dados relacional. Esta linguagem tornou-se tão onipresente que praticamente nenhum campo relacionado a dados foi tocado por ela.

Se você estiver interessado na cláusula SQL ORDER BY, presumo que já tenha começado a aprender SQL ou esteja planejando começar a aprender em breve. Esta cláusula é usada para classificar os resultados em uma determinada ordem. Neste artigo, vamos cobrir alguns exemplos práticos para demonstrar seu uso. Se você ainda não está familiarizado com os fundamentos das consultas SQL, eu recomendo que você tome nosso SQL para Iniciantes curso.

Vamos mergulhar diretamente na cláusula SQL ORDER BY.

O que é a cláusula SQL ORDER BY?

Como já dissemos, a cláusula SQL ORDER BY é usada para organizar os resultados da consulta em uma determinada ordem. Suponha que você seja um professor universitário e queira imprimir uma lista dos alunos matriculados em sua classe em ordem alfabética. Se você tiver estas informações armazenadas em algum banco de dados, escrever uma simples consulta lhe dará os resultados.

Em minha experiência, ORDER BY é uma das construções SQL mais úteis; quase todos os relatórios e análises têm algum uso.

Deixe-me levar-lhe um exemplo que explica como escrever uma consulta simples usando ORDER BY.

Exemplo 1: ORDEM POR Uso de uma Coluna Numérica

Imagine que você trabalha como gerente de vendas em uma empresa. O banco de dados de sua empresa armazena os dados de vendas de cada vendedor na seguinte tabela, chamada sales_performance:

sales_person_idnameterritorytotal_sales_valuejoining_date
2333GregorioBavaria1922021-Sep-2021
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
4134PierreParis2121401-Aug-2020

Agora diga que você quer recuperar esta lista de vendedores. Você os queria listados por seu número de identificação em ordem crescente (ou seja, menor para maior, A-Z, etc.). Sua consulta será algo parecido com isto:

SELECT * 
FROM sales_performance
ORDER BY sales_person_id;

Saída:

sales_person_idnameterritorytotal_sales_valuejoining_date
1113SebastianLondon3243331-Oct-2020
2333GregorioBavaria1922021-Sep-2021
4134PierreParis2121401-Aug-2020
4323AaronLondon32000010-Jan-2018

A consulta funciona devolvendo todos os registros e colunas do sales_performance e depois organizando os resultados com base na ordem numérica da coluna sales_person_id.

É importante observar que ORDER BY ordena em ordem crescente por padrão; embora você possa usar a palavra-chave ASC para indicar que deseja resultados em ordem crescente, você não precisa incluí-la. Em um campo com números, a ordem ascendente coloca o menor número em primeiro lugar, seguido pelo próximo menor, e assim por diante. O maior número virá em último lugar.

Exemplo 2: PEDIDO DE USO DE UMA Coluna de Texto

Você também pode usar a mesma cláusula para ordenar os valores das colunas em ordem alfabética. Por exemplo, digamos que você queria uma lista de vendedores ordenados pelos primeiros nomes dos representantes de vendas. Aqui está a consulta:

SELECT * 
FROM sales_performance
ORDER BY name;

Saída:

sales_person_idnameterritorytotal_sales_valuejoining_date
4323AaronLondon32000010-Jan-2018
2333GregorioBavaria1922021-Sep-2021
4134PierreParis2121401-Aug-2020
1113SebastianLondon3243331-Oct-2020

Os registros são agora ordenados em ordem alfabética de acordo com o name. Em ordem crescente, isto significa que os nomes são ordenados alfabeticamente de A a Z.

Exemplo 3: PEDIDO POR Usando uma Coluna de Data

Você também pode classificar os resultados por uma coluna de datas como joining_date. No caso da coluna de datas, a consulta padrão retorna os registros da data mais antiga para a mais recente:

SELECT * 
FROM sales_performance
ORDER BY joining_date;

Saída:

sales_person_idnameterritorytotal_sales_valuejoining_date
4323AaronLondon32000010-Jan-2018
4134PierreParis2121401-Aug-2020
1113SebastianLondon3243331-Oct-2020
2333GregorioBavaria1922021-Sep-2021

Aqui os resultados são organizados por joining_date, do mais velho para o mais novo.

Exemplo 4: Ordenação em ordem decrescente

Até agora, todos os registros foram classificados em ordem ascendente. Entretanto, você pode organizar os registros em ordem decrescente - basta escrever a palavra-chave DESC após o nome da coluna.

Por exemplo, digamos que você queira organizar esta lista por valor total de vendas alcançado por cada vendedor. Você quer ver primeiro o maior número (ou seja, o maior valor de vendas), então você terá que ordenar em ordem decrescente. Vamos tentar a seguinte consulta:

SELECT * 
FROM sales_performance
ORDER BY total_sales_value DESC;

Saída:

sales_person_idnameterritorytotal_sales_valuejoining_date
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
4134PierreParis2121401-Aug-2020
2333GregorioBavaria1922021-Sep-2021

Os resultados são ordenados em ordem decrescente (10-1) de acordo com o valor total de vendas. Você também pode fazer isto com valores de texto ou data; neste caso, os resultados serão ordenados de Z a A (texto) ou de mais novo a mais antigo (data).

As palavras-chave DESC ou ASC podem ser usadas conforme a necessidade. Se você omitir a palavra-chave, os resultados estarão em ordem ascendente.

Exemplo 5: ORDEM POR Uso de um Número de Coluna

Você também pode fazer referência a uma coluna usando uma referência numérica baseada na ordem das colunas na tabela. Em outras palavras, você usaria um número em vez do nome da coluna. Veja o exemplo a seguir para obter mais clareza:

SELECT sales_person_id, name 
FROM sales_performance
ORDER BY 2;

Saída:

sales_person_idname
4323Aaron
2333Gregorio
4134Pierre
1113Sebastian

O nome da coluna é a segunda coluna em nossa tabela. Queremos ordenar os valores retornados pela consulta pelo nome do representante de vendas, mas em vez de escrever o nome depois de ORDER BY, escrevemos 2.

Nota: Esta abordagem é recomendada apenas para consultas interativas. Não é recomendada na escrita de scripts, pois as consultas com números em ORDER BY são difíceis de gerenciar.

Exemplo 6: Ordenação de múltiplas colunas

Enquanto escreve consultas reais, suas exigências raramente são tão simples quanto os exemplos que utilizamos; você pode ter que classificar seus valores com base em várias colunas.

A cláusula ORDER BY permite que você faça isso especificando uma lista de colunas; basta separar os nomes das colunas com vírgulas. Você pode usar as palavras-chave ASC ou DESC (se desejar) com cada coluna para ordenar essa coluna em ordem ascendente ou descendente.

Digamos que você precisa exibir os registros da tabela em ordem decrescente de territory e depois pelo nome do vendedor. Sua consulta será algo parecido com isto.

SELECT * 
FROM sales_performance
ORDER BY territory DESC, name ASC;

Saída:

sales_person_idnameterritorytotal_sales_valuejoining_date
4134PierreParis2121401-Aug-2020
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
2333GregorioBavaria1922021-Sep-2021

Você notará na saída que a coluna territory está disposta em ordem alfabética inversa (i.e. descendente). Para o território de Londres, os registros são mostrados em ordem alfabética por nome.

Exemplo 7: Utilização de ORDEM POR com Expressões

Você também pode ordenar por mais do que apenas nomes de colunas; SQL permite o uso de expressões ao ordenar valores. Por exemplo, digamos que você queira ordenar concatenando territory e name em ordem ascendente. Aqui está a consulta:

SELECT *
FROM sales_performance
ORDER BY CONCAT(territory, name);

Saída:

sales_person_idnameterritorytotal_sales_valuejoining_date
2333GregorioBavaria1922021-Sep-2021
4323AaronLondon32000010-Jan-2018
1113SebastianLondon3243331-Oct-2020
4134PierreParis2121401-Aug-2020

Aqui, os registros são ordenados por uma concatenação de territory e name. Assim Bavaria e Gregorio tornam-se os primeiros em ordem alfabética e Paris Pierre é o último.

Você pode usar o CASE in ORDER BY para produzir pedidos realmente precisos.

Deseja praticar o uso do ORDER BY em SQL?

Espero que estes exemplos tenham demonstrado claramente o uso da cláusula ORDER BY. Ordenar dados é uma necessidade chave na maioria dos pontos de vista e relatórios, o que torna importante dominar o uso do ORDER BY. E a chave para se tornar bom em escrever consultas é a prática!

Quanto mais consultas você escrever para diferentes casos de uso, mais intuitivas se tornarão as consultas de escrita. Se você estiver procurando por alguns exercícios de prática SQL incríveis, confira nossos exercícios interativos Curso de Práticas em SQL. Oferece 88 exercícios interativos que vão do simples ao mais avançado.

E se você estiver procurando por uma experiência de aprendizado abrangente, nossa trilha SQL de A a Z é para você. Ela oferece 7 cursos interativos e o colocará no caminho das habilidades SQL pro nível. Ou confira este artigo sobre as várias maneiras de aprender SQL.

Tudo de bom e feliz aprendizado!