Предложение Order By (Visual Basic)
Указывает порядок сортировки для результата запроса.
Синтаксис
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Детали
orderExp1
Обязательный. Одно или несколько полей из текущего результата запроса, определяющих порядок возвращаемых значений. Имена полей должны быть разделены запятыми (,). Каждое поле можно определить по возрастанию или убыванию с помощью Ascending
ключевое слово Descending
. Если нет Ascending
или Descending
ключевое слово указано, порядок сортировки по умолчанию возрастает. Поля порядка сортировки имеют приоритет слева направо.
Замечания
Предложение можно использовать Order By
для сортировки результатов запроса. Предложение Order By
может сортировать результат только на основе переменной диапазона для текущей область. Например, предложение Select
представляет новый область в выражении запроса с новыми переменными итерации для этого область. Переменные диапазона, определенные перед предложением Select
в запросе, недоступны после Select
предложения. Таким образом, если вы хотите упорядочить результаты по полю, недоступному Select
в предложении, необходимо поместить Order By
предложение перед предложением Select
. Один из примеров, когда это необходимо сделать, заключается в том, когда вы хотите отсортировать запрос по полям, которые не возвращаются в рамках результата.
По возрастанию и убыванию поля определяется реализацией IComparable интерфейса для типа данных поля. Если тип данных не реализует IComparable интерфейс, порядок сортировки игнорируется.
Пример 1
Следующее выражение запроса использует From
предложение для объявления переменной book
диапазона для books
коллекции. Предложение Order By
сортирует результат запроса по цене в порядке возрастания (по умолчанию). Книги с той же ценой отсортированы по названию в порядке возрастания. Предложение Select
выбирает Title
и Price
свойства в качестве значений, возвращаемых запросом.
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
Пример 2
Следующее выражение запроса использует Order By
предложение для сортировки результата запроса по цене в порядке убывания. Книги с той же ценой отсортированы по названию в порядке возрастания.
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
Пример 3
Следующее выражение запроса использует Select
предложение для выбора названия книги, цены, даты публикации и автора. Затем он заполняет Title
Price
PublishDate
поля и Author
поля переменной диапазона для новой область. Предложение Order By
заказывает новую переменную диапазона по имени автора, названию книги и цене. Каждый столбец отсортирован по умолчанию (по возрастанию).
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price