TOP

Lição SQL 3. Classificando dados (ORDER BY)

No futuro, poderemos precisar classificar nossa seleção - em ordem alfabética para texto ou em ordem crescente/decrescente - para valores numéricos. Para tais fins, o SQL possui um operador especial ORDER BY.

O operador SQL ORDER BY pode classificar de menor para maior, ou seja, em ordem crescente, e na ordem inversa - de maior para menor.


1. Classificando os dados selecionados

Vamos classificar toda a nossa tabela pelo valor das vendas dos produtos, ou seja, pela coluna Valor.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount

Vemos que a consulta classificou os registros em ordem crescente no campo Valor. É necessário observar a sequência de disposição dos operadores, ou seja, o operador ORDER BY deve ir bem no final da solicitação. Caso contrário, uma mensagem de erro será recebida.

Além disso, uma característica do operador ORDER BY é que ele pode ordenar os dados por um campo que não selecionamos na consulta, ou seja, basta que esteja no banco de dados.

2. Classificando por vários campos

Agora vamos classificar nosso exemplo adicionalmente por mais um campo. Que seja o campo City, que exibe o local de venda dos produtos.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount, City

A ordem de classificação dependerá da ordem dos campos na consulta. Ou seja, no nosso caso, os dados serão ordenados primeiro pela coluna Valor e depois por City.

3. Direção de classificação

Embora por padrão o operador ORDER BY classifique em ordem crescente, também podemos escrever os valores para classificar em ordem decrescente. Para isso, colocamos o operador DESC (que é uma abreviatura da palavra DESCENDING) no final de cada campo.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount DESC, City

Neste exemplo, os valores no campo Valor foram classificados em ordem decrescente e no campo City - em ordem crescente. O operador DESC aplica-se apenas a uma coluna, portanto, se necessário, deve ser escrito após cada campo que participa da ordenação.