czwartek, 9 marca 2017

Lekcja 8. Sortowanie wierszy.

Klauzula ORDER BY służy do sortowania wierszy zwracanych  przez zapytanie. Za jej pomocą można określić jedną, bądź  kilka kolumn, według których będzie się odbywało sortowanie. Klauzulę WHERE umieszczamy za klauzulami FROM i WHERE (jeżeli ta ostatnia została użyta).

SELECT lista elementów
FROM lista tabel
WHERE lista warunków
ORDER BY lista kolumn;

W poniższym zapytaniu użyto klauzuli ORDER BY do posortowania wierszy z tabeli employee według kolumny last_name:

Domyślnie klauzula ORDER BY powoduje posortowanie rekordów w kolejności rosnącej (mniejsze wartości wyświetlane są u góry). Mogłoby się wydawać, że przy zapytaniu bez użyciu ORDER BY, kolejność sortowania jest przypadkowa. W rzeczywistości rekordy zwrócone przez zapytanie sortowanie są według klucza głównego.

Tak jak wspomniałem sortować możemy po więcej niż jednej kolumnie.W poniższym zapytaniu sortujemy wiersze z tabeli employee według kolumny last_name oraz first_name:



Aby posortować wiersze w kolejności malejącej (od wartości największych do najmniejszych) należy zastosować słowo kluczowe DESC. Można również użyć słowa kluczowego ASC, aby jawnie zadeklarować rosnącą kolejność sortowania i zwiększyć czytelność zapytania. Tak jak wspomniałem sortować możemy po więcej niż jednej kolumnie.

W poniższym zapytaniu użyto klauzuli ORDER BY do posortowania wierszy pobranych z tabeli employee – rosnąco według kolumny last_name i malejąco według kolumny first_name:



Do wskazania w klauzuli ORDER BY kolumny, według której będą sortowane wiersze, można również użyć numeru pozycji kolumny – 1 oznacza pierwszą wybieraną kolumnę, 2 – drugą itd. W poniższym zapytaniu kryterium sortowania są dane z kolumny 1 (emp_no):


Ponieważ kolumna emp_no znajduje się na pierwszej pozycji za słowem kluczowym SELECT, to ona posłużyła za kryterium sortowania.


Domyślnie wartości null pojawiają się w przypadku sortowania rosnącego (domyślne sortowanie) na początku . Aby to zmienić musimy po nazwie sortowanej kolumny dodać klauzulę NULLS LAST.


Jeśli sortujemy malejąco, wartości null pojawią się domyślnie na końcu.


Aby to zmienić musimy zastosować NULLS FIRST.



Brak komentarzy:

Prześlij komentarz