Próbuję sortować według wielu kolumn w SQL i w różnych kierunkach. column1
będą sortowane malejąco i column2
rosnąco.
W jaki sposób mogę to zrobić?
sql
sql-order-by
Señor Reginold Francis
źródło
źródło
Odpowiedzi:
Sortuje wszystko
column1
najpierw (malejąco), a następniecolumn2
(rosnąco, co jest ustawieniem domyślnym), gdycolumn1
pola dla dwóch lub więcej wierszy są równe.źródło
column1
najpierw, a następnie zacolumn2
każdym razem, gdycolumn1
pola dla dwóch wierszy są równe.column2
a następnie wykonuje sortowanie STABILNE wedługcolumn1
. Jest to bardziej jasne dla osób, które wiedzą, czym jest stabilne sortowanie.Inne odpowiedzi nie zawierają konkretnego przykładu, więc oto:
Biorąc pod uwagę następującą tabelę Ludzie :
Jeśli wykonasz zapytanie poniżej:
Zestaw wyników będzie wyglądał następująco:
źródło
1.Firstname asc, Lastname desc, yearOfBirst asc and 2.Firstname asc, Lastname desc, yearOfBirst desc
Czy jest jakiś sposób, aby to przezwyciężyć?FirstName, LastName
wpisy z wyraźnymiYearOfBirth
źródło
Porządkowanie wielu kolumn zależy od odpowiadających im wartości obu kolumn: Oto mój przykład tabeli, w której dwie kolumny nazwane są alfabetami i liczbami, a wartościami w tych dwóch kolumnach są porządek rosnący i malejący .
Teraz wykonuję Order By w tych dwóch kolumnach, wykonując poniższe polecenie:
Teraz ponownie wstawiam nowe wartości w tych dwóch kolumnach, gdzie wartość alfabetu w kolejności ASC :
i kolumny w przykładowej tabeli wyglądają tak. Teraz ponownie wykonaj tę samą operację:
Możesz zobaczyć, że wartości w pierwszej kolumnie są w porządku malejącym, ale w drugiej kolumnie nie ma kolejności ASC.
źródło
(g, 10),(g,12)
. Następnie uruchom zapytanie według zamówienia, otrzymasz drugą kolumnę jakoASC
zamówienie (to znaczyg-10,g-11,g-12)
Możesz użyć wielokrotnego zamawiania pod wieloma warunkami,
źródło