Warunek ORDER BY

ORDER BY – Sortowanie wyników

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?

  • Domyślnie sortuje rosnąco (ASC – od najmniejszego do największego, A-Z, 0-9).
  • Użyj DESC, aby sortować malejąco (od największego do najmniejszego, Z-A, 9-0).
  • Jeśli sortujesz po wielu kolumnach, pierwsza kolumna ma priorytet; w przypadku remisu (takich samych wartości) stosowana jest kolejna.
  • Klauzula ORDER BY jest umieszczana na końcu zapytania SELECT, po WHERE i GROUP BY (jeśli są używane).
  • Sortowanie wpływa na wydajność, zwłaszcza na dużych zbiorach danych – warto tworzyć indeksy na kolumnach sortujących.

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;
Wynik: Najstarsi klienci pierwsi (np. 65 lat, 60 lat itd.).

 

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;

 

Wynik: Najpierw klienci z Warszawy (posortowani po nazwisku od Z do A), potem z Krakowa itd.

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. 

Kontakt: mgzsp22@gmail.com

© 2024. Wszystkie prawa zastrzeżone.

error: Content is protected !!