Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
Вы можете упорядочить строки в результатах запроса. То есть можно назвать определенный столбец или набор столбцов, значения которых определяют порядок строк в результирующем наборе.
Заметка
Порядок сортировки определяется частично последовательностью сортировки столбца. Вы можете изменить последовательность сортировки в диалоговом окне сортировки.
Существует несколько способов сортировки результатов запроса:
Строки можно упорядочить по возрастанию или убыванию
По умолчанию SQL использует столбцы ORDER BY для сортировки строк по возрастанию. Например, чтобы упорядочить названия книги по возрастанию цены, просто сортируйте строки по столбцу цен. Результирующий SQL может выглядеть следующим образом:
SELECT * FROM titles ORDER BY price;С другой стороны, если вы хотите сначала упорядочить названия книг, начиная с самых дорогих, вы можете явно указать порядок от самого дорогого к самому дешевому. То есть вы указываете, что результирующих строк следует упорядочить по убыванию значений столбца цен. Результирующий SQL может выглядеть следующим образом:
SELECT * FROM titles ORDER BY price DESC;Можно сортировать по нескольким столбцам
Например, можно создать результат с одной строкой для каждого автора, упорядочивая сначала по штату, а затем по городу. Результирующий SQL может выглядеть следующим образом:
SELECT * FROM authors ORDER BY state, city;Вы можете сортировать по столбцам, не отображаемым в результирующем наборе
Например, можно создать результирующий набор, приведя в начало самые дорогие названия, даже если цены не видны. Результирующий SQL может выглядеть следующим образом:
SELECT title_id, title FROM titles ORDER BY price DESC;Вы можете сортировать по производным столбцам
Например, можно создать результирующий набор, в котором каждая строка содержит название книги, начиная с книг, за которые выплачивается максимальная роялти за экземпляр. Результирующий SQL может выглядеть следующим образом:
SELECT title, price * royalty / 100 AS royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC;(Формула вычисления роялти, которую каждая книга зарабатывает на копию, подчеркивается.)
Для вычисления производного столбца можно использовать синтаксис SQL, как в предыдущем примере, или использовать определяемую пользователем функцию, возвращающую скалярное значение. Дополнительные сведения о определяемых пользователем функциях см. в документации по SQL Server.
Сгруппированные строки можно сортировать
Например; Вы можете создать результирующий набор, в котором каждая строка описывает город, а также число авторов в этом городе — с городами, содержащими много авторов, которые появляются в первую очередь. Результирующий SQL может выглядеть следующим образом:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state;Запрос использует
stateв качестве дополнительного столбца сортировки. Таким образом, если два состояния имеют одинаковое число авторов, эти состояния отображаются в алфавитном порядке.Можно сортировать с помощью международных данных
То есть; Столбец можно сортировать с помощью соглашений о сортировке, отличающихся от соглашений по умолчанию для этого столбца. Например, можно написать запрос, который извлекает все названия книги Jaime Patiño. Для отображения заголовков в алфавитном порядке используется последовательность сортировки испанского языка для столбца заголовка. Результирующий SQL может выглядеть следующим образом:
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;