SQL ORDER BY

SQL ORDER BY



DEFINICJA

Polecenie ORDER BY służy do sortowanie wyników zapytania. Sortować możemy malejąco (wartości od największej do najmniejszej, czyli wartości maleją) i rosnąco (wartości od najmniejszej do największej, czyli wartości rosną). Przy sortowaniu możemy korzystać z aliasów nadanych kolumnom. Sortowanie może odbywać się po większej ilości kolumn, wtedy poszczególne nazwy kolumn (bądź aliasy) rozdzielamy przecinkami. Jeżeli nie wskażemy kierunku sortowania to domyślnie sortowanie jest rosnące, skrót ASC (patrz składnia poniżej). Jeśli chcemy sortować daną kolumnę malejąco musimy jawnie to wpisać, skrót DESC (patrz składnia poniżej).

SQL ORDER BY składnia

SELECT
nazwy_kolumy(kolumn)
FROM
nazwa_tabeli
ORDER BY
nazwa_kolumny1 ASC , nazwa_kolumny2 DESC


Przykład zastosowania ORDER BY (baza Adventureworks)

Wyświetl wszyskie osoby (tylko kolumny: Nazwisko, Imię, Email) z bazy wraz z ich adresami email. Wyniki posortuj wg nazwiska (malejąco) a następnie wg adresu email (rosnąco).

SELECT
P.LastName
,P.FirstName
,E.EmailAddress
FROM
Person.Person P
 JOIN Person.EmailAddress E ON (P.BusinessEntityID = E.BusinessEntityID)
ORDER BY
LastName DESC, EmailAddress

 


 Przykład zastosowania ORDER BY (baza Northwind)

Wyświetl wszystkie produkty (tylko kolumny: ID, Nazwa Produktu, Kategoria Produktu) wraz z ich kategoriami. Wyniki posortuj wg nazwy produktu (rosnąco) a następnie wg nazwy kategorii (malejąco).

SELECT
P.ProductID
,P.ProductName
,C.CategoryName
FROM
Products P JOIN Categories C ON (P.CategoryID = C.CategoryID)
ORDER BY
ProductName ASC, CategoryName DESC