Jak działa ORDER BY w języku SQL? Przykłady zastosowania

Jak działa ORDER BY w języku SQL? Przykłady zastosowania

Sortowanie wyników w SQL to kluczowa umiejętność, którą warto dobrze zrozumieć. Jednym z najczęściej używanych poleceń do organizowania danych w bazie jest ORDER BY. W tym artykule wyjaśnię, jak działa ORDER BY w języku SQL, omówię różne sposoby jego wykorzystania i pokażę praktyczne przykłady.

Podstawowa składnia ORDER BY

Operator ORDER BY pozwala nam sortować wyniki zapytania według jednej lub wielu kolumn. Podstawowa składnia wygląda następująco:

SELECT kolumny FROM tabela
ORDER BY kolumna [ASC | DESC];

Gdzie:

  • kolumny – lista kolumn, które chcemy pobrać
  • tabela – nazwa tabeli, z której pobieramy dane
  • kolumna – kolumna, według której sortujemy dane
  • ASC – sortowanie rosnące (domyślne)
  • DESC – sortowanie malejące

Sortowanie według jednej kolumny

Najprostszy przykład sortowania to uporządkowanie danych według jednej kolumny w porządku rosnącym:

SELECT * FROM pracownicy
ORDER BY nazwisko ASC;

Powyższe zapytanie zwróci wszystkich pracowników posortowanych rosnąco według nazwiska.

Sortowanie według wielu kolumn

Możemy także sortować według kilku kolumn, na przykład najpierw według nazwiska, a potem według imienia:

SELECT * FROM pracownicy
ORDER BY nazwisko ASC, imię ASC;

Jeśli dwie osoby mają to samo nazwisko, kolejność będzie ustalona na podstawie imienia.

Sortowanie w kolejności malejącej

Aby posortować dane malejąco, wystarczy dodać słowo kluczowe DESC:

SELECT * FROM produkty
ORDER BY cena DESC;

To zapytanie zwróci listę produktów ułożonych od najdroższego do najtańszego.

Sortowanie według indeksu kolumny

Możliwe jest także sortowanie według numeru kolumny (kolejności w zapytaniu SELECT):

SELECT imię, nazwisko, wiek FROM klienci
ORDER BY 3 DESC;

Powyżej dane są sortowane według trzeciej kolumny, czyli wiek, w kolejności malejącej.

Sortowanie danych tekstowych

Warto pamiętać, że SQL sortuje dane tekstowe alfabetycznie, ale uwzględnia przy tym wielkość liter. Czasem może to prowadzić do nieoczekiwanych wyników:

SELECT * FROM klienci
ORDER BY nazwisko ASC;

Nazwiska zaczynające się od wielkiej litery zostaną posortowane przed tymi zapisanymi małymi literami. Można temu zaradzić, używając funkcji LOWER():

SELECT * FROM klienci
ORDER BY LOWER(nazwisko) ASC;

Sortowanie wartości NULL

Jeśli w danej kolumnie znajdują się wartości NULL, domyślnie pojawią się one na końcu wyników dla sortowania rosnącego i na początku dla sortowania malejącego. Można to zmienić za pomocą NULLS FIRST lub NULLS LAST:

SELECT * FROM zamówienia
ORDER BY data_zamówienia DESC NULLS LAST;

Praktyczny przykład: sortowanie wyników w tabeli

Załóżmy, że mamy tabelę produktów:

ID Nazwa Cena
1 Smartfon 2400
2 Tablet 1800
3 Laptop 4200

Chcemy posortować tabelę według ceny, od najdroższego do najtańszego:

SELECT * FROM produkty
ORDER BY cena DESC;

Wynik będzie wyglądał następująco:

ID Nazwa Cena
3 Laptop 4200
1 Smartfon 2400
2 Tablet 1800

Podsumowanie

Sortowanie wyników w SQL jest niezwykle przydatne i bardzo proste w użyciu. Operator ORDER BY pozwala na:

  • Sortowanie według jednej lub wielu kolumn.
  • Wybór kolejności rosnącej (ASC) lub malejącej (DESC).
  • Sortowanie według indeksu kolumny.
  • Radzenie sobie z danymi tekstowymi i wartościami NULL.

Teraz, mając tę wiedzę, możesz śmiało wykorzystywać ORDER BY do lepszego porządkowania wyników swoich zapytań SQL.

 

Inny ciekawy artykuł:

Jak działa GROUP BY w języku SQL? Przykłady zastosowania

KajoDataSpace