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.