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:
FROMwybiera tabelęWHEREfiltruje wierszeORDER BYsortuje pozostałe wierszeLIMITogranicza 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 columnsortuje wynikASC(wartość domyślna) sortuje od najmniejszej do największej wartości;DESCodwraca 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
- Sortowanie za pomocą ORDER BY
- Sortowanie według wielu kolumn
- LIMIT i OFFSET
- Wyszukiwanie rekordów Top-N