Database
 sql >> Base de Dados >  >> RDS >> Database

Como classificar no SQL

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.