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

Como ordenar por duas colunas no SQL?

Problema:


Você precisa exibir registros de uma determinada tabela classificados por duas colunas.

Exemplo:


Nosso banco de dados tem uma tabela chamada employee com as seguintes colunas:id , first_name , last_name e salary .
id first_name last_name salário
1 Lisa Ulman 3000
2 Ada Muller 2400
3 Thomas Verde 2400
4 Michael Muller 3000
5 Maria Verde 2400

Vamos exibir todas as informações de cada funcionário, mas ordenar os registros de acordo com o salário em ordem decrescente primeiro e depois por sobrenome em ordem crescente.

Solução:

SELECT id,  
  first_name,
  last_name,
  salary
FROM employee
ORDER BY salary DESC, last_name;

Esta consulta retorna registros classificados de acordo com duas colunas:salário e sobrenome .
<
id first_name last_name salário
4 Michael M uller 3000
1 Lisa U lman 3000
3 Thomas G reen 2400
5 Maria G reen 2400
2 Ada M uller 2400

Discussão:


Se você deseja selecionar registros de uma tabela, mas gostaria de vê-los ordenados de acordo com duas colunas, você pode fazê-lo com ORDER BY . Esta cláusula vem no final da sua consulta SQL.

Após o ORDER BY palavra-chave, adicione o nome da coluna pela qual você deseja classificar os registros primeiro (no nosso exemplo, salário). Em seguida, após uma vírgula, adicione a segunda coluna (no nosso exemplo, last_name ). Você pode modificar a ordem de classificação (crescente ou decrescente) separadamente para cada coluna. Se você quiser usar a ordem crescente (de baixo para cima), você pode usar o ASC palavra-chave; essa palavra-chave é opcional, no entanto, pois essa é a ordem padrão quando nenhuma é especificada. Se você quiser usar a ordem decrescente, coloque o DESC palavra-chave após a coluna apropriada (no exemplo, usamos ordem decrescente para o salary coluna).

Em nosso exemplo, primeiro classificamos o resultado por salário em ordem decrescente (salários maiores para menores) e depois por sobrenome em ordem crescente dentro dos registros já classificados.