
Kada radimo sa bazama podataka, često je potrebno sortirati rezultate upita da bismo ih lakše pregledali ili analizirali. SQL nam omogućava sortiranje podataka pomoću ORDER BY klauzule. Ova klauzula se koristi u kombinaciji sa SELECT naredbom i omogućava sortiranje rezultata na osnovu jedne ili više kolona.
Osnovna sintaksa za korišćenje ORDER BY klauzule je:
SELECT kolona1, kolona2, …
FROM tabela
ORDER BY kolona1 [ASC|DESC], kolona2 [ASC|DESC], …;
- kolona1, kolona2, … su nazivi kolona prema kojima želimo sortirati rezultate.
- ASC (ascending) označava rastući redosled (ovo je podrazumevano ponašanje ako se ne navede ništa).
- DESC (descending) označava opadajući redosled.
Primeri upotrebe ORDER BY klauzule:
- Sortirati sve kupce po nazivu u opadajućem redosledu.
S obzirom da podatke treba sortirati po nazivu kupca, iza ključne reči Order By navodimo ime kolone Customer_Name i dodajemo oznaku za opadajući redosled DESC.
select Customer_ID, Customer_Name, Address, Postal_Code, City
from Customers
order by Customer_Name desc

- Sortirati poružbine po šifri kupca u opadajućem redosledu i datumu porudžbine u rastućem redosledu.
Kada se Order By koristi za sortiranje više kolona, redosled izvršavanja je u skladu sa redosledom navedenih kolona, što znači da će podaci biti prvo sortirani po koloni Customer_ID u opadajućem redosledu, pa zatim po koloni Order_Date u rastućem redosledu.
select Order_ID, Customer_ID, Order_Date
from Orders
order by Customer_ID desc, Order_Date asc

Takođe, postoji mogućnost sortiranja kolona i po rednom broju kolone, gde umesto naziva kolone navodimo njen redni broj.
select Order_ID, Customer_ID, Order_Date
from Orders
order by 2 desc, 3 asc

- Sortirati poružbine po šifri kupca u rastućem redosledu i datumu porudžbine u rastućem redosledu.
Ukoliko ne navedemo oznaku za redosled, podrazumevani način sortiranja je rastući.
select Order_ID, Customer_ID, Order_Date
from Orders
order by 2, 3

