
Sortowanie wyników w SQL to kluczowa umiejętność, którą warto dobrze zrozumieć. Jednym z najczęściej używanych poleceń do organizowania danych w bazie jest ORDER BY. W tym artykule wyjaśnię, jak działa ORDER BY w języku SQL, omówię różne sposoby jego wykorzystania i pokażę praktyczne przykłady.
Podstawowa składnia ORDER BY
Operator ORDER BY pozwala nam sortować wyniki zapytania według jednej lub wielu kolumn. Podstawowa składnia wygląda następująco:
SELECT kolumny FROM tabela
ORDER BY kolumna [ASC | DESC];
Gdzie:
- kolumny – lista kolumn, które chcemy pobrać
- tabela – nazwa tabeli, z której pobieramy dane
- kolumna – kolumna, według której sortujemy dane
- ASC – sortowanie rosnące (domyślne)
- DESC – sortowanie malejące
Sortowanie według jednej kolumny
Najprostszy przykład sortowania to uporządkowanie danych według jednej kolumny w porządku rosnącym:
SELECT * FROM pracownicy
ORDER BY nazwisko ASC;
Powyższe zapytanie zwróci wszystkich pracowników posortowanych rosnąco według nazwiska.
Sortowanie według wielu kolumn
Możemy także sortować według kilku kolumn, na przykład najpierw według nazwiska, a potem według imienia:
SELECT * FROM pracownicy
ORDER BY nazwisko ASC, imię ASC;
Jeśli dwie osoby mają to samo nazwisko, kolejność będzie ustalona na podstawie imienia.
Sortowanie w kolejności malejącej
Aby posortować dane malejąco, wystarczy dodać słowo kluczowe DESC:
SELECT * FROM produkty
ORDER BY cena DESC;
To zapytanie zwróci listę produktów ułożonych od najdroższego do najtańszego.
Sortowanie według indeksu kolumny
Możliwe jest także sortowanie według numeru kolumny (kolejności w zapytaniu SELECT):
SELECT imię, nazwisko, wiek FROM klienci
ORDER BY 3 DESC;
Powyżej dane są sortowane według trzeciej kolumny, czyli wiek, w kolejności malejącej.
Sortowanie danych tekstowych
Warto pamiętać, że SQL sortuje dane tekstowe alfabetycznie, ale uwzględnia przy tym wielkość liter. Czasem może to prowadzić do nieoczekiwanych wyników:
SELECT * FROM klienci
ORDER BY nazwisko ASC;
Nazwiska zaczynające się od wielkiej litery zostaną posortowane przed tymi zapisanymi małymi literami. Można temu zaradzić, używając funkcji LOWER():
SELECT * FROM klienci
ORDER BY LOWER(nazwisko) ASC;
Sortowanie wartości NULL
Jeśli w danej kolumnie znajdują się wartości NULL, domyślnie pojawią się one na końcu wyników dla sortowania rosnącego i na początku dla sortowania malejącego. Można to zmienić za pomocą NULLS FIRST lub NULLS LAST:
SELECT * FROM zamówienia
ORDER BY data_zamówienia DESC NULLS LAST;
Praktyczny przykład: sortowanie wyników w tabeli
Załóżmy, że mamy tabelę produktów:
| ID | Nazwa | Cena |
|---|---|---|
| 1 | Smartfon | 2400 |
| 2 | Tablet | 1800 |
| 3 | Laptop | 4200 |
Chcemy posortować tabelę według ceny, od najdroższego do najtańszego:
SELECT * FROM produkty
ORDER BY cena DESC;
Wynik będzie wyglądał następująco:
| ID | Nazwa | Cena |
|---|---|---|
| 3 | Laptop | 4200 |
| 1 | Smartfon | 2400 |
| 2 | Tablet | 1800 |
Podsumowanie
Sortowanie wyników w SQL jest niezwykle przydatne i bardzo proste w użyciu. Operator ORDER BY pozwala na:
- Sortowanie według jednej lub wielu kolumn.
- Wybór kolejności rosnącej (
ASC) lub malejącej (DESC). - Sortowanie według indeksu kolumny.
- Radzenie sobie z danymi tekstowymi i wartościami
NULL.
Teraz, mając tę wiedzę, możesz śmiało wykorzystywać ORDER BY do lepszego porządkowania wyników swoich zapytań SQL.
Inny ciekawy artykuł:
Jak działa GROUP BY w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

