Odczytywanie danych z bazy w odpowiedniej kolejności – select order by

Kolejność danych ma znaczenie. Możemy wpłynąć na kolejność zwracanych danych, poprzez wskazanie kolumn po słowach kluczowych order by w zapytaniu select.

Sortowanie rosnące można zrealizować poprzez:

select nazwy_kolumn_do_wyświetlenia from tabela order by nazwy_kolumn

lub inny, równoważny zapis:

select nazwy_kolumn_do_wyświetlenia from tabela order by nazwy_kolumn asc

oraz gdy potrzebujemy posortować dane malejąco

select nazwy_kolumn_do_wyświetlenia from tabela order by nazwy_kolumn desc

Uwaga: Wartość asc jest domyślnym sposobem sortowania i może zostać pominięta.

Uwaga: Dopuszczalne jest użycie numerów kolumn zwracanych w części order by zamiast nazw.

Jeśli niezbędne jest sortowanie po wielu kolumnach, wystarczy wypisać je w odpowiedniej kolejności po przecinku oraz określić, czy kolumny mają być sortowane rosnąco czy malejąco używając operatorów asc oraz desc.

Przykłady:

Order by asc:

Dla danych w tabeli names:

Zawartość tabeli names

Kwerenda sortująca nazwy rosnąco:

select * from names order by name asc

Zwróci wartości:

Przykład: select * from names order by name asc

Taki sam rezultat można uzyskać poprzez jedną z poniższych komend:

select id, name from names order by 2 asc

select * from names order by 2 asc

Order by desc:

select * from names order by name desc

Dla powyższego skryptu otrzymamy wyniki:

Przykład: select * from names order by name desc

Powyższy skrypt jest równoważny:

select id, name from names order by name desc

lub

select * from names order by 2 desc

Sortowanie po wielu kolumnach:

Do tabeli names dodajmy nowy wpis Maria:

Dane do przykładu
Sortowanie po dwóch kolumnach:
select * from names order by name desc, id desc

Zwróci wartości sortowane malejąco po name oraz malejąco po id :

Rezultaty widać na pozycjach id 11 oraz 12 dla takiego samego imienia Maria.

Oraz sortowanie malejąco po name oraz rosnąco po id:

select * from names order by name desc, id

Także rezultat widać po z imieniem Maria dla rekordów z id 11 oraz 12.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *