Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает порядок сортировки, используемый для объектов, возвращаемых в инструкции SELECT.
Синтаксис
[ ORDER BY
{
order_by_expression [SKIP n] [LIMIT n]
[ COLLATE collation_name ]
[ ASC | DESC ]
}
[ ,…n ]
]
Аргументы
order_by_expression Любое допустимое выражение запроса, указывающее свойство для сортировки. Можно указать несколько выражений сортировки. Последовательность выражений сортировки в предложении ORDER BY определяет организацию отсортированного результированного набора.
COLLATE {collation_name} Указывает, что операция ORDER BY должна выполняться в соответствии с параметрами сортировки, указанными в collation_name. COLLATE применяется только для строковых выражений.
ASC Указывает, что значения в указанном свойстве должны быть отсортированы в порядке возрастания, от наименьшего до самого высокого значения. Это значение по умолчанию.
DESC Указывает, что значения в указанном свойстве должны быть отсортированы в порядке убывания, от самого высокого до наименьшего.
Будут n выбраны только первые n элементы.
SKIP пропускает n первые n элементы.
Замечания
Предложение ORDER BY логически применяется к результату предложения SELECT. Предложение ORDER BY может ссылаться на элементы в списке выбора с помощью псевдонимов. Предложение ORDER BY также может ссылаться на другие переменные, которые в настоящее время находятся в области. Однако если предложение SELECT было указано с модификатором DISTINCT, предложение ORDER BY может ссылаться только на псевдонимы из предложения SELECT.
SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2
Каждое выражение в предложении ORDER BY должно оцениваться с некоторыми типами, которые можно сравнить для упорядоченного неравенства (меньше или больше, чем и т. д.). Как правило, эти типы являются скалярными примитивами, такими как числа, строки и даты. RowTypes сопоставимых типов также сравниваются с порядком.
Если код выполняет итерацию по упорядоченному набору, кроме проекции верхнего уровня, выходные данные не будут сохранены.
В следующем примере порядок гарантированно сохраняется:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
В следующем запросе порядок вложенного запроса игнорируется:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Чтобы выполнить упорядоченную операцию UNION, UNION ALL, EXCEPT или INTERSECT, используйте следующий шаблон:
SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...
Ограниченные ключевые слова
Следующие ключевые слова должны быть заключены в кавычки при использовании в предложении ORDER BY :
Крест
ПОЛНЫЙ
Ключ
НАЛЕВО
ЗАКАЗ
внешний
ПРАВО
РЯД
ЦЕННОСТЬ
Упорядочивание вложенных запросов
В Entity Framework вложенное выражение можно разместить в любом месте запроса; Порядок вложенного запроса не сохраняется.
Следующий запрос упорядочит результаты по фамилии:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
В следующем запросе порядок вложенного запроса игнорируется:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Пример
Следующий запрос Entity SQL использует оператор ORDER BY для указания порядка сортировки, используемого для объектов, возвращаемых в инструкции SELECT. Запрос основан на модели продаж AdventureWorks. Чтобы скомпилировать и запустить этот запрос, выполните следующие действия.
Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты структурного типа".
Передайте следующий запрос в качестве аргумента в
ExecuteStructuralTypeQueryметод:
SELECT VALUE p FROM AdventureWorksEntities.Products
AS p ORDER BY p.ListPrice