Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Rzędy można porządkować w wyniku zapytania. Oznacza to, że można nazwać określoną kolumnę lub zestaw kolumn, których wartości określają kolejność wierszy w zestawie wyników.
Notatka
Kolejność sortowania jest określana częściowo przez sekwencję sortowania kolumny. Sekwencję sortowania można zmienić w oknie dialogowym Sortowanie.
Istnieje kilka sposobów sortowania wyników zapytania:
Możesz uporządkować wiersze w kolejności rosnącej lub malejącej
Domyślnie usługa SQL używa kolumn order-by do rozmieszczania wierszy w kolejności rosnącej. Aby na przykład rozmieścić tytuły książek według rosnącej ceny, po prostu posortuj wiersze według kolumny price (cena). Wynikowy kod SQL może wyglądać następująco:
SELECT * FROM titles ORDER BY price;Z drugiej strony, jeśli chcesz uporządkować tytuły, zaczynając od droższych książek, możesz wprost określić kolejność od najdroższych. Oznacza to, że wiersze wyników powinny być ułożone malejąco według wartości kolumny 'cena'. Wynikowy kod SQL może wyglądać następująco:
SELECT * FROM titles ORDER BY price DESC;Można sortować według wielu kolumn
Na przykład można utworzyć zestaw wyników z jednym wierszem dla każdego autora, porządkowając najpierw według stanu, a następnie według miasta. Wynikowy kod SQL może wyglądać następująco:
SELECT * FROM authors ORDER BY state, city;Możesz sortować według kolumn, które nie są wyświetlane w zestawie wyników
Na przykład możesz utworzyć zestaw wyników z najdroższymi tytułami, mimo że ceny nie są wyświetlane. Wynikowy kod SQL może wyglądać następująco:
SELECT title_id, title FROM titles ORDER BY price DESC;Możesz sortować według kolumn pochodnych
Można na przykład utworzyć zestaw wyników, w którym każdy wiersz zawiera tytuł książki, z książkami, które przynoszą najwyższą opłatę licencyjną za kopię. Wynikowy kod SQL może wyglądać następująco:
SELECT title, price * royalty / 100 AS royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC;(Formuła obliczania tantiemy, którą każda książka zarabia na kopię, jest podkreślona).
Aby obliczyć kolumnę pochodną, możesz użyć składni SQL, tak jak w poprzednim przykładzie, lub użyć funkcji zdefiniowanej przez użytkownika, która zwraca wartość skalarną. Aby uzyskać więcej informacji na temat funkcji zdefiniowanych przez użytkownika, zobacz dokumentację programu SQL Server.
Możesz sortować pogrupowane wiersze
Na przykład, możesz utworzyć zestaw wyników, w którym każdy wiersz opisuje miasto oraz liczbę autorów w tym mieście — z miastami zawierającymi wielu autorów pojawiającymi się jako pierwsze. Wynikowy kod SQL może wyglądać następująco:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state;Zapytanie używa
statejako pomocniczej kolumny sortowania. W związku z tym, jeśli dwa stany mają taką samą liczbę autorów, stany te pojawiają się w kolejności alfabetycznej.Możesz sortować przy użyciu danych międzynarodowych
Czyli; Kolumnę można sortować przy użyciu konwencji sortowania, które różnią się od domyślnych konwencji dla tej kolumny. Możesz na przykład napisać zapytanie, które pobiera wszystkie tytuły książki autorstwa Jaime Patiño. Aby wyświetlić tytuły w kolejności alfabetycznej, należy użyć hiszpańskiej sekwencji sortowania dla kolumny tytułu. Wynikowy kod SQL może wyglądać następująco:
SELECT title FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE au_fname = 'Jaime' AND au_lname = 'Patiño' ORDER BY title COLLATE SQL_Spanish_Pref_CP1_CI_AS;