0Pricing
SQL Academy · Lekcja

Sortowanie za pomocą ORDER BY

Sortuj wiersze rosnąco i malejąco

Sortowanie za pomocą ORDER BY to bezpłatna lekcja SQL Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SQL Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SQL Academy zawiera 4 lekcji w sumie.

Dlaczego kolejność ma znaczenie

Domyślnie instrukcja SELECT zwraca wiersze w kolejności, której nie gwarantuje baza danych. Baza może zwrócić je w dowolnej kolejności, która jest dla niej wygodna.

Gdy potrzebują Państwo przewidywalnego wyniku, na przykład alfabetycznej listy lub kanału z najnowszymi elementami na początku, należy wyraźnie określić to za pomocą ORDER BY.

-- Without ORDER BY, row order is NOT guaranteed
SELECT name, price
FROM products;

Klauzula ORDER BY

ORDER BY znajduje się pod koniec zapytania, po WHERE i przed LIMIT. Należy podać kolumnę, według której ma odbywać się sortowanie.

To sortuje produkty alfabetycznie według name.

SELECT name, price
FROM products
ORDER BY name;

Rosnąco jest wartością domyślną

Jeśli nie określą Państwo inaczej, sortowanie odbywa się rosnąco: od A do Z dla tekstu, od najmniejszej do największej wartości dla liczb oraz od najwcześniejszej do najpóźniejszej daty.

Można zapisać ASC, aby wyraźnie to zaznaczyć, ale niczego to nie zmienia.

-- These two queries are identical
SELECT name, price FROM products ORDER BY price;
SELECT name, price FROM products ORDER BY price ASC;

Sortowanie malejące

Dodaj DESC, aby odwrócić kolejność: od Z do A, od największej do najmniejszej wartości oraz od najnowszych do najstarszych elementów.

To wyświetla najdroższe produkty jako pierwsze.

SELECT name, price
FROM products
ORDER BY price DESC;

Sortowanie dat

Daty i znaczniki czasu są sortowane chronologicznie. DESC wyświetla najnowsze wiersze jako pierwsze — to klasyczny wzorzec dla kanałów aktywności i dzienników.

SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC;

Sortowanie według niewybieranej kolumny

Kolumna sortowania nie musi znajdować się na liście SELECT. Można sortować według czegoś, czego użytkownik nigdy nie zobaczy.

W tym przykładzie wyświetlana jest tylko nazwa, ale sortowanie odbywa się w tle według ceny.

SELECT name
FROM products
ORDER BY price DESC;

Sortowanie według pozycji kolumny

PostgreSQL pozwala sortować według pozycji kolumny na liście SELECT. ORDER BY 2 oznacza „drugą wybraną kolumnę”.

Jest to wygodne w szybkich zapytaniach, ale używanie rzeczywistych nazw kolumn jest czytelniejsze i bezpieczniejsze.

-- 2 refers to price (the 2nd column)
SELECT name, price
FROM products
ORDER BY 2 DESC;

Sortowanie według wyrażenia

Można sortować według obliczanej wartości, a nie tylko zapisanej kolumny. Wyrażenie jest obliczane dla każdego wiersza, a następnie używane do ustalenia kolejności.

To szereguje produkty według całkowitej wartości ich zapasów.

SELECT name, price, stock
FROM products
ORDER BY price * stock DESC;

Sortowanie według aliasu

Jeśli wyrażeniu w instrukcji SELECT nada się alias, można ponownie użyć tego aliasu w ORDER BY. Dzięki temu zapytanie jest czytelniejsze.

SELECT name, price * stock AS inventory_value
FROM products
ORDER BY inventory_value DESC;

Rozróżnianie wielkości liter podczas sortowania tekstu

Sortowanie tekstu odbywa się zgodnie z regułą sortowania bazy danych, a wielkie i małe litery mogą być sortowane inaczej, niż się Państwo spodziewają.

Aby wymusić sortowanie bez uwzględniania wielkości liter, należy sortować według kopii kolumny zamienionej na małe litery za pomocą LOWER().

SELECT name
FROM products
ORDER BY LOWER(name);

Miejsce ORDER BY w zapytaniu

Należy pamiętać o logicznej kolejności klauzul:

  • FROM wybiera tabelę
  • WHERE filtruje wiersze
  • ORDER BY sortuje pozostałe wiersze
  • LIMIT ogranicza wynik

Sortowanie zawsze odbywa się po filtrowaniu.

SELECT name, price
FROM products
WHERE price > 10
ORDER BY price DESC;

Szybki test

Które zapytanie wyświetla najtańsze produkty jako pierwsze?

Podsumowanie

Teraz mogą Państwo kontrolować kolejność wierszy:

  • ORDER BY column sortuje wynik
  • ASC (wartość domyślna) sortuje od najmniejszej do największej wartości; DESC odwraca kolejność
  • Można sortować według kolumn, pozycji, wyrażeń lub aliasów
  • Należy użyć LOWER(), aby sortować tekst bez uwzględniania wielkości liter

W następnej części nauczą się Państwo rozstrzygać remisy, sortując jednocześnie według wielu kolumn.

SELECT name, price
FROM products
ORDER BY price DESC;

Często zadawane pytania

Czy lekcja „Sortowanie za pomocą ORDER BY” jest bezpłatna?

Tak — pełny tekst „Sortowanie za pomocą ORDER BY” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SQL Academy, przejdź na CoddyKit PRO. Kurs SQL Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Sortowanie za pomocą ORDER BY”?

Sortuj wiersze rosnąco i malejąco Ćwiczysz SQL Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SQL Academy?

Nie wymagamy żadnego doświadczenia. SQL Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Sortowanie za pomocą ORDER BY”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SQL Academy?

Tak. Każda lekcja SQL Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Sortowanie za pomocą ORDER BY
  2. Sortowanie według wielu kolumn
  3. LIMIT i OFFSET
  4. Wyszukiwanie rekordów Top-N
← Powrót do SQL Academy