Estou tentando classificar por várias colunas no SQL e em direções diferentes. column1
seria ordenado descendente e column2
ascendente.
Como posso fazer isso?
sql
sql-order-by
Senhor Reginold Francis
fonte
fonte
Respostas:
Isso classifica tudo por
column1
(decrescente) primeiro e depois porcolumn2
(crescente, que é o padrão) sempre que oscolumn1
campos para duas ou mais linhas forem iguais.fonte
column1
primeiro e depoiscolumn2
sempre que oscolumn1
campos de duas linhas forem iguais.column2
e executa a classificação STABLE porcolumn1
. Isso fica mais claro para as pessoas que sabem o que é uma classificação estável.As outras respostas não têm um exemplo concreto, então aqui vai:
Dada a seguinte tabela Pessoas :
Se você executar a consulta abaixo:
O conjunto de resultados ficará assim:
fonte
1.Firstname asc, Lastname desc, yearOfBirst asc and 2.Firstname asc, Lastname desc, yearOfBirst desc
Existe alguma maneira de superar isso?FirstName, LastName
entradas com distintaYearOfBirth
fonte
A ordenação de várias colunas depende dos valores correspondentes de ambas as colunas: Aqui está o meu exemplo de tabela, onde estão duas colunas nomeadas com alfabetos e números e os valores nessas duas colunas são ordens asc e desc .
Agora eu executo Order By nessas duas colunas executando o comando abaixo:
Agora, novamente, insiro novos valores nessas duas colunas, onde o valor do alfabeto na ordem ASC :
e as colunas na tabela Exemplo ficam assim. Agora, novamente, execute a mesma operação:
Você pode ver que os valores na primeira coluna estão na ordem desc, mas a segunda coluna não está na ordem ASC.
fonte
(g, 10),(g,12)
. Em seguida, execute sua consulta por ordem e você obtém a segunda coluna comoASC
ordem (isso significag-10,g-11,g-12)
Você pode usar pedidos múltiplos em várias condições,
fonte