
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.