ORDER BY – sortowanie wyników zapytania – Kurs SQL

W języku SQL możesz sortować wynik zapytania stosując klauzulę ORDER BY. Sortowanie może odbywać się po jednej, bądź wielu kolumnach. Dodatkowo możesz wskazać czy posortowane dane mają być wyświetlane w kolejności:

ASC – rosnącej (domyślne ustawienie)
DESC – malejącej

Czas na przykłady. Oprzemy je o poniższą przykładową tabelę wynagrodzenia.

wynagrodzenia

Przykład 1:

Posortujmy tabelę wynagrodzenia po polu wynagrodzenie w kolejności malejącej (DESC)

SELECT * FROM wynagrodzenia 
ORDER BY wynagrodzenie DESC;

W niektórych silnikach bazodanowych przy sortowaniu zamiast nazwy kolumny możesz podawać numer jej wystąpienia w zapytaniu. Dla przykładu kolumna wynagrodzenie występuje na 4 pozycji, zatem zapytanie może wyglądać również jak poniżej:

SELECT * FROM wynagrodzenia 
ORDER BY 4 DESC;

Wynik obu powyższych zapytań będzie taki sam i wygląda następująco:

wynagrodzenia posortowane malejąco po kolumnie wynagrodzenie

Przykład 2:

Tym razem do sortowania wykorzystamy dwie kolumny. Niech będą to miesiąc rosnąco (ASC) oraz id_pracownika malejąco (DESC). Spójrzmy na gotowe zapytanie SQL:

SELECT * FROM wynagrodzenia
ORDER BY miesiac ASC, id_pracownika DESC;

lub odpowiednik z wykorzystaniem numerów kolumn:

SELECT * FROM wynagrodzenia
ORDER BY 2 ASC, 1 DESC;

wynagrodzenie posortowane rosnąco po miesiącu i malejąco po id_pracownika