Czym jest? Klauzula ORDER BY służy do sortowania wyników zapytania w kolejności rosnącej (ascending, domyślnie) lub malejącej (descending). Bez niej wyniki są zwracane w nieokreślonej kolejności (zależnej od bazy danych). Jest przydatna do organizowania danych, np. alfabetycznie po nazwisku lub chronologicznie po dacie. Sortowanie może być po jednej lub wielu kolumnach, a dla każdej kolumny możesz określić kierunek sortowania.
Jak działa?
Składnia:
SELECT kolumny FROM tabela [WHERE warunek] ORDER BY kolumna1 [ASC|DESC], kolumna2 [ASC|DESC];
Przykłady:
Podstawowe sortowanie rosnące po jednej kolumnie (np. po nazwisku):
SELECT * FROM klienci ORDER BY nazwisko;
Wynik: Klienci posortowani alfabetycznie po nazwisku (np. Adams, Nowak, Smith).
Sortowanie malejące po wieku:
SELECT imie, nazwisko, wiek FROM klienci ORDER BY wiek DESC;
Sortowanie po dwóch kolumnach (pierw po mieście rosnąco, potem po nazwisku malejąco):
SELECT * FROM klienci ORDER BY miasto ASC, nazwisko DESC;
Z aliasem kolumny (np. sortowanie po obliczanym polu):
SELECT imie, saldo * 1.1 AS saldo_z_vatem FROM klienci ORDER BY saldo_z_vatem DESC;
Wynik: Klienci posortowani po zwiększonym saldzie (malejąco).
WAŻNE: W bazach jak SQL Server czy MySQL działa identycznie. Jeśli nie podasz kierunku, domyślnie jest ASC.