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.