Предложение ORDER BY (Transact-SQL)

Изменения: 14 апреля 2006 г.

Указывает порядок сортировки для столбцов, возвращаемых инструкцией SELECT. Предложение ORDER BY не может применяться в представлениях, встроенных функциях, производных таблицах и вложенных запросах, если не указано предложение TOP.

ms188385.note(ru-ru,SQL.90).gifПримечание.
При использовании предложения ORDER BY в определении представления, встроенной функции, производной таблице или вложенном запросе, предложение используется только для определения строк, возвращаемых предложением TOP. Предложение ORDER BY не гарантирует упорядочивания результатов при запросе этих конструкций, если оно не указано в самом запросе.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

[ ORDER BY 
    {
    order_by_expression 
  [ COLLATE collation_name ] 
  [ ASC | DESC ] 
    } [ ,...n ] 
] 

Аргументы

  • order_by_expression
    Указывает столбец, по которому должна выполняться сортировка. Столбец сортировки может быть указан с помощью имени или псевдонима столбца или неотрицательного целого числа, представляющего позицию имени или псевдонима в списке выбора. Нельзя указывать целое число, если аргумент order_by_expression присутствует в ранжирующей функции. Столбец сортировки может включать выражение, но если база данных в SQL Server 2005 находится в режиме совместимости (90), то выражение не может преобразовываться в постоянное значение. Имена и псевдонимы столбцов могут быть дополнены именем таблицы или представления. В SQL Server 2005 уточненные имена и псевдонимы столбцов связываются со столбцами, перечисленными в предложении FROM. Если в выражении order_by_expression отсутствует квалификатор, то значение должно быть уникальным во всех столбцах, перечисленных в инструкции SELECT.

    Можно указать несколько столбцов сортировки. Последовательность столбцов сортировки в предложении ORDER BY определяет организацию упорядоченного результирующего набора.

    В предложение ORDER BY могут входить элементы, которых нет в списке выборки. Однако если указана конструкция SELECT DISTINCT, или инструкция содержит предложение GROUP BY, или если инструкция SELECT содержит оператор UNION, то столбцы сортировки должны присутствовать в списке выборки.

    Кроме того, если в инструкцию SELECT входит оператор UNION, то имена и псевдонимы столбцов должны быть из числа уточненных в первом списке выбора.

    ms188385.note(ru-ru,SQL.90).gifПримечание.
    Столбцы типа ntext, text, image или xml не могут быть использованы в предложении ORDER BY.
  • COLLATE {collation_name}
    Указывает, что операция ORDER BY должна выполняться в соответствии с параметрами сортировки, указанными в аргументе collation_name, но не в соответствии с параметрами сортировки столбца, определенных в таблице или представлении. Значение collation_name может быть именем параметров сортировки Windows или именем параметров сортировки SQL. Дополнительные сведения см. в разделах Настройка параметров сортировки в программе установки и Использование параметров сортировки SQL. Аргумент COLLATE применяется только к столбцам данных типа char, varchar, nchar и nvarchar.
  • ASC
    Указывает, что значения в указанном столбце должны сортироваться по возрастанию, от меньших значений к большим значениям.
  • DESC
    Указывает, что значения в указанном столбце должны сортироваться по убыванию, от больших значений к меньшим.

Замечания

Значения NULL рассматриваются как минимально возможные значения.

Число элементов в предложении ORDER BY не ограничивается. Однако существует ограничение в 8 060 байт для размера строки промежуточных рабочих таблиц, необходимых для операций сортировки. Это ограничивает общий размер столбцов, указываемый в предложении ORDER BY.

Использование предложения ORDER BY с инструкцией SELECT...INTO для вставки строк из другого источника, не гарантирует вставку строк в указанном порядке.

См. также

Справочник

Выражения (Transact-SQL)
SELECT (Transact-SQL)
FROM (Transact-SQL)

Другие ресурсы

Сортировка строк с использованием предложения ORDER BY

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Новое содержимое
  • Добавлено пояснение о назначении предложения ORDER BY во встроенной функции, производной таблице или определении вложенного запроса.

5 декабря 2005 г.

Новое содержимое
  • Добавлено пояснение о назначении предложения ORDER BY в определении представления.