В этом учебном пособии вы узнаете, ак использовать оператор ORDER BY в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Оператор ORDER BY SQL Server (Transact-SQL) используется для сортировки записей в вашем результирующем наборе. ORDER BY может использоваться только в SELECT предложениях.
Синтаксис
Синтаксис ORDER BY в SQL Server (Transact-SQL):
FROM tables
[WHERE conditions]
ORDER BY expression [ ASC | DESC ];
Параметры или аргументы
expressions - столбцы или вычисления, которые вы хотите получить.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, перечисленная в предложении FROM.
WHERE conditions - необязательный. Условия, которые должны быть выполнены для выбранных записей.
ASC - необязательный. Он сортирует результирующий набор в порядке возрастания по expressions (по умолчанию, если атрибут ASC явно не указан).
DESC - необязательный. Он сортирует результирующий набор в порядке убывания по выражению.
Примечание
- Если атрибут ASC или DESC не указан в предложении ORDER BY, результаты будут отсортированы по выражению в порядке возрастания. Это эквивалентно выражению ORDER BY ASC.
Пример сортировки без использования атрибута ASC / DESC.
Предложение ORDER BY SQL Server может использоваться без указания значения ASC или DESC. Когда этот атрибут опущен в предложении ORDER BY, порядок сортировки по умолчанию равен ASC или по возрастанию.
Например:
1 2 3 4 |
SELECT last_name FROM employees WHERE employee_id > 500 ORDER BY last_name; |
Этот пример ORDER BY SQL Server возвратит все записи, отсортированные по полю last_name, в порядке возрастания и будет эквивалентен следующему предложению ORDER BY:
1 2 3 4 |
SELECT last_name FROM employees WHERE employee_id > 500 ORDER BY last_name ASC; |
Большинство программистов опускают атрибут ASC при сортировке в порядке возрастания.
Пример сортировки по убыванию.
При сортировке результирующего набора в порядке убывания вы используете атрибут DESC в предложении ORDER BY.
Например:
1 2 3 4 |
SELECT last_name FROM employees WHERE first_name = 'Антонина' ORDER BY last_name DESC; |
Этот пример SQL Server ORDER BY возвращает все записи, отсортированные по полю last_name, в порядке убывания.
Пример сортировки по относительной позиции.
Вы также можете использовать предложение ORDER BY SQL Server для сортировки по относительной позиции в наборе результатов, где первое поле в результирующем наборе равно 1. Следующее поле равно 2 и так далее.
Например:
1 2 3 4 |
SELECT last_name FROM employees WHERE last_name = 'Пеньков' ORDER BY 1 DESC; |
Этот пример возвращает все записи, отсортированные по полю last_name, в порядке убывания, так как поле last_name находится в позиции №1 в результирующем наборе и будет эквивалентно следующему предложению ORDER BY:
SELECT last_name
FROM employees
WHERE last_name = 'Пеньков'
ORDER BY last_name DESC;
Пример использования атрибутов ASC и DESC.
При сортировке набора результатов с помощью предложения ORDER BY SQL Server вы можете использовать атрибуты ASC и DESC в одном выражении SELECT.
Например:
1 2 3 4 |
SELECT last_name, first_name FROM employees WHERE last_name = 'Пупков' ORDER BY last_name DESC, first_name ASC; |
Этот пример будет возвращать все записи, отсортированные по полю last_name в порядке убывания, с вторичным сортированием по first_name в порядке возрастания.