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 |