SQL - ORDER BY Klauzule


Naručivanje rezultata rezultata

Kad koristite SELECT izraz za dobijanje podataka iz tabele, redovi u rezultatima nisu ni u jednom određenom redoslijedu. Ako želite svoj rezultat postaviti određenim redosljedom, možete navesti naredbu ORDER BY na kraju izjave koja poslužitelju govori kako sortirati podatke vraćene upitom. Zadani red sortiranja je uzlazni.



Sintaksa

Klauzula ORDER BY koristi se za sortiranje podataka vraćenih upitom u uzlaznom ili izlaznom redosljedu. Osnovna sintaksa ove klauzule može se napisati kao:

SELECT column_list FROM table_name ORDER BY column_name ASC|DESC;

Ovdje su, na primjer, popis kolona / polja poput imena, starosti, zemlje itd. Tabela baze podataka čije vrijednosti želite dohvatiti, dok je ime kolone naziv kolone koji želite sortirati. Provjerimo nekoliko primjera koji pokazuju kako to zapravo djeluje. Uzmite u obzir da u našoj bazi podataka imamo tabelu zaposlenih koja sadrži sljedeće zapise:





Razvrstavanje jedne kolone

Sljedeća SQL izjava vratit će sve zaposlene iz tabele zaposlenih i narediti rezultat postavljen kolone em_name u uzlaznom redoslijedu.

SELECT * FROM employees 
ORDER BY emp_name ASC;

Možete preskočiti opciju ASC i jednostavno koristiti sljedeću sintaksu. Vraća isti skup rezultata kao i prethodna izjava, jer je zadani redosljed sortiranja uzlazni:

SELECT * FROM employees 
ORDER BY emp_name;

Nakon izvršenja gornje naredbe, dobit ćete ovakav izlaz:



Slično tome, možete koristiti opciju DESC da biste izvršili razvrstavanje u silaznom redoslijedu. Sljedeća izjava će narediti rezultat postavljen numeričkim kolonama plata u silaznom redoslijedu.

SELECT * FROM employees 
ORDER BY salary DESC;

Ovog puta dobit ćete set rezultata ovako:





Sortiranje više kolona

Prilikom sortiranja možete odrediti više kolona. Međutim, promjena u rezultatima neće biti vidljiva sve dok u tabeli ne budete imali duple vrijednosti. Da bismo bolje razumjeli razvrstavanje više kolona, pretpostavimo da u našoj bazi imamo tabelu pod nazivom pripravnici sa sljedećim zapisima:



Ako pažljivo pogledate tabelu, vidjećete da imamo neke duple vrijednosti. Međutim, puno ime pripravnika "Peter Parker" i "Peter Pan" različiti su, ali njihova su imena ista. Sada izvršite sljedeću naredbu koja naređuje rezultat postavljen kolone first_name.

SELECT * FROM trainees 
ORDER BY first_name;

Nakon izvršenja, dobit ćete ovakav izlaz:



Sada izvršite ovu izjavu koja naređuje skup rezultata s kolonom first_name i last_name.

SELECT * FROM trainees 
ORDER BY first_name, last_name;


Jeste li primijetili razliku između prethodnog i trenutnog rezultata - ovaj put pripravnik "Peter Parker" dolazi nakon "Petera Pan". Budući da je prvo ime obojice pripravnika isto što je "Peter", tako se naredba drugog nivoa vrši u koloni prezimena za ova dva pripravnika, zbog čega zapis pripravnika "Peter Parker" dolazi nakon "Petera Pan".