Problema:
Você gostaria de classificar o resultado de uma consulta SQL em ordem crescente ou decrescente.
Exemplo:
Nosso banco de dados tem uma tabela chamada
salary_information
com dados nas colunas id
, first_name
, last_name
e monthly_earnings
. Queremos classificar os funcionários por seus monthly_earnings
por ordem decrescente. id | first_name | last_name | salário_mensal |
---|---|---|---|
1 | Calvino | Rios | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Alex | Watkins | 5500 |
Solução:
Usaremos um
ORDER BY
cláusula. Aqui está a consulta:Usaremos a função
CURRENT_DATE
para obter a data atual:SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Segue o resultado da consulta:
first_name | last_name | salário_mensal |
---|---|---|
Alex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvino | Rios | 3500 |
Kurt | Evans | 2300 |
Agora, podemos ver que Alex Watkins é o primeiro da lista, o que significa que ele ganha mais dinheiro.
Discussão:
Use um
ORDER BY
cláusula se desejar classificar o conjunto de dados em ordem crescente ou decrescente. A sintaxe para um ORDER BY
cláusula é a seguinte:SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
Acima,
ASC|DESC
significa que você deve escolher a palavra-chave ASC
(ascendente) ou DESC
(descendente) para ordenar o conjunto de dados da maneira desejada. Além de classificar por colunas numéricas, você também pode classificar por colunas de texto. Um
ORDER BY
cláusula classificará as colunas de texto em ordem alfabética. Em vez do nome da coluna, você também pode usar a posição da coluna contando da esquerda. Então, em nosso exemplo, em vez de escrever:
ORDER BY monthly_earnings DESC
você também pode escrever:
ORDER BY 3 DESC
Se você quiser classificar a tabela do exemplo pelo
first_name
coluna em ordem alfabética (crescente), você pode usar a seguinte consulta:SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Também vale a pena notar que você pode classificar por várias colunas. Isso é útil quando alguns valores em uma determinada coluna são repetidos e você precisa de classificação adicional. Nesse caso, separe os nomes das colunas com vírgulas na cláusula ORDER BY.
Você pode até classificar em ordem crescente por uma coluna e em ordem decrescente por outra. O seguinte ilustra a sintaxe dessa combinação:
ORDER BY Col1 ASC, Col2 DESC;
Se você omitir o
ASC
ou DESC
palavra-chave, uma classificação crescente é executada por padrão.