Zamawianie wielu kolumn SQL

Próbuję sortować po wielu kolumnach w SQL i w różnych kierunkach. column1 będzie sortowane malejąco i column2 rosnąco.

Jak mogę to zrobić?
Author: Bdebeez, 2010-01-12

5 answers

ORDER BY column1 DESC, column2

Sortuje wszystko najpierw według column1 (malejąco), a następnie według column2 (rosnąco, co jest domyślne), gdy column1 Pola dla dwóch lub więcej wierszy są równe.

 1116
Author: Ignacio Vazquez-Abrams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-07 09:57:15

Inne odpowiedzi nie mają konkretnego przykładu, więc proszę bardzo:

Podano następującą tabelę osób :

 FirstName |  LastName   |  YearOfBirth
----------------------------------------
  Thomas   | Alva Edison |   1847
  Benjamin | Franklin    |   1706
  Thomas   | More        |   1478
  Thomas   | Jefferson   |   1826

Jeśli wykonasz poniższe zapytanie:

SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC

Zestaw wyników będzie wyglądał następująco:

 FirstName |  LastName   |  YearOfBirth
----------------------------------------
  Thomas   | More        |   1478
  Thomas   | Jefferson   |   1826
  Thomas   | Alva Edison |   1847
  Benjamin | Franklin    |   1706
 380
Author: Thomas C. G. de Vilhena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-18 23:48:49
SELECT  *
FROM    mytable
ORDER BY
        column1 DESC, column2 ASC
 142
Author: Quassnoi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-09 02:23:39

Kolejność wielu kolumn zależy od odpowiednich wartości obu kolumn: Oto mój przykład tabeli gdzie są dwie kolumny nazwane alfabetami i liczbami, a wartości w tych dwóch kolumnach to ASC i desc .

Tutaj wpisz opis obrazka

Teraz wykonuję kolejność według w tych dwóch kolumnach wykonując poniższe polecenie:

Tutaj wpisz opis obrazka

Teraz znowu wstawiam nowe wartości w tych dwóch kolumnach, gdzie wartość alfabetu w ASC kolejność:

Tutaj wpisz opis obrazka

I kolumny w przykładowej tabeli wyglądają tak. Teraz ponownie wykonaj tę samą operację:

Tutaj wpisz opis obrazka

Możesz zobaczyć wartości w pierwszej kolumnie są w porządku desc, ale druga kolumna nie jest w porządku ASC.

 23
Author: Jason Clark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-23 18:49:12

Możesz używać wielokrotnego zamawiania pod wieloma warunkami,

ORDER BY 
     (CASE 
        WHEN @AlphabetBy = 2  THEN [Drug Name]
      END) ASC,
    CASE 
        WHEN @TopBy = 1  THEN [Rx Count]
        WHEN @TopBy = 2  THEN [Cost]
        WHEN @TopBy = 3  THEN [Revenue]
    END DESC 
 10
Author: atik sarker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-03 11:35:36