TOP

SQL-Lecția 3. Sortarea datelor (ORDER BY)

În viitor, poate fi necesar să ne sortăm selecția - alfabetic pentru text sau crescător/descrescător - pentru valori numerice. În astfel de scopuri, SQL are un operator special ORDER BY.

Operatorul SQL ORDER BY poate sorta atât de la mai mic la mai mare, adică în ordine crescătoare, cât și în ordine inversă - de la mai mare la mai mic.


1. Sortarea datelor selectate

Să sortăm întregul nostru tabel după valoarea vânzărilor de produse, și anume după coloana Sumă.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount

Vedem că interogarea a sortat înregistrările în ordine crescătoare în câmpul Sumă. Este necesar să se respecte succesiunea aranjamentului operatorilor, adică operatorul ORDER BY trebuie să meargă chiar la sfârșitul cererii. În caz contrar, va fi primit un mesaj de eroare.

De asemenea, o caracteristică a operatorului ORDER BY este că poate sorta datele după un câmp pe care nu l-am selectat în interogare, adică este suficient să fie deloc în baza de date.

2. Sortarea după mai multe câmpuri

Acum să sortăm exemplul nostru în plus după încă un câmp. Să fie câmpul City, care afișează locul de vânzare a produselor.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount, City

Ordinea sortării va depinde de ordinea câmpurilor din cerere. Adică, în cazul nostru, datele vor fi mai întâi sortate după coloana Sumă, iar apoi după City.

3. Direcția sortării

Deși implicit operatorul ORDER BY sortează în ordine crescătoare, putem scrie și valorile în ordine descrescătoare. Pentru a face acest lucru, punem operatorul DESC (care este o abreviere a cuvântului DESCENDING) la sfârșitul fiecărui câmp.

Run SQLSELECT * 
FROM Sumproduct 
ORDER BY Amount DESC, City

În acest exemplu, valorile din câmpul Sumă au fost sortate în ordine descrescătoare, iar în câmpul City - în ordine crescătoare. Operatorul DESC se aplică doar unei coloane, deci, dacă este necesar, trebuie să fie scris după fiecare câmp care participă la sortare.