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