Problem:
Chcesz wyświetlić rekordy z tabeli w kolejności alfabetycznej lub odwróconej alfabetycznie zgodnie z podaną kolumną.
Przykład:
W naszej bazie danych znajduje się tabela o nazwie klient. Tabela klientów zawiera dane w kolumnach id, name_name i last_name.
id | imię | nazwisko |
---|---|---|
1 | Zuzanna | Thomas |
2 | Jan | Michael |
3 | Tomek | Muller |
Wyświetlmy informacje o każdym kliencie, posortowane w porządku rosnącym według jego nazwiska.
Rozwiązanie:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name ASC;
To zapytanie zwraca posortowane alfabetycznie rekordy:
id | imię | nazwisko |
---|---|---|
2 | Jan | Michael |
3 | Tomek | Muller |
1 | Zuzanna | Thomas |
Dyskusja:
Jeśli chcesz wybrać rekordy z tabeli, ale chcesz zobaczyć je posortowane według podanej kolumny, możesz po prostu użyć ORDER BY
klauzula na końcu SELECT
oświadczenie. Nie ma znaczenia, jak skomplikowane lub długie jest Twoje zapytanie SQL — ORDER BY
powinien zawsze znajdować się na końcu polecenia.
Po ORDER BY
słowa kluczowego, określasz kolumnę, według której mają być sortowane rekordy. W naszym zapytaniu sortujemy według nazwiska klienta.
lub
Domyślnie ORDER BY
bez żadnego dodatkowego specyfikatora sortuje w porządku rosnącym (odpowiednik użycia ASC
słowo kluczowe jawnie). Jak zapewne się domyślasz, ASC
oznacza „wznoszący się”. Jeśli chcesz posortować w kolejności malejącej, uprość określ DESC
słowo kluczowe po nazwie kolumny.
Poniższe zapytanie jest podobne do poprzedniego, ale zwraca listę klientów posortowanych w porządku malejącym według ich nazwiska:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name DESC;
id | imię | nazwisko |
---|---|---|
1 | Zuzanna | Thomas |
3 | Tomek | Muller |
2 | Jan | Michael |