Поделиться через


Предложение 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 предложение для выбора названия книги, цены, даты публикации и автора. Затем он заполняет TitlePricePublishDateполя и Author поля переменной диапазона для новой область. Предложение Order By заказывает новую переменную диапазона по имени автора, названию книги и цене. Каждый столбец отсортирован по умолчанию (по возрастанию).

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

См. также