Предложение Order By (Visual Basic)Order By Clause (Visual Basic)

Задает порядок сортировки для результата запроса.Specifies the sort order for a query result.

СинтаксисSyntax

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]  

ЧастиParts

orderExp1
Обязательный.Required. Одно или несколько полей из текущего результата запроса, которые указывают порядок упорядочения возвращаемых значений.One or more fields from the current query result that identify how to order the returned values. Имена полей должны быть разделены запятыми (,).The field names must be separated by commas (,). Каждое поле можно задать как отсортированное по возрастанию или убыванию с помощью ключевых слов Ascending или Descending.You can identify each field as sorted in ascending or descending order by using the Ascending or Descending keywords. Если не указано ключевое слово Ascending или Descending, порядок сортировки по умолчанию — по возрастанию.If no Ascending or Descending keyword is specified, the default sort order is ascending. Поля порядка сортировки получают приоритет слева направо.The sort order fields are given precedence from left to right.

ПримечанияRemarks

Для сортировки результатов запроса можно использовать предложение Order By.You can use the Order By clause to sort the results of a query. Предложение Order By может отсортировать результат только на основе переменной диапазона для текущей области.The Order By clause can only sort a result based on the range variable for the current scope. Например, предложение Select вводит новую область в выражении запроса с новыми переменными итерации для этой области.For example, the Select clause introduces a new scope in a query expression with new iteration variables for that scope. Переменные диапазона, определенные до предложения Select в запросе, недоступны после предложения Select.Range variables defined before a Select clause in a query are not available after the Select clause. Поэтому, если требуется упорядочить результаты по полю, которое недоступно в предложении Select, необходимо поместить предложение Order By перед предложением Select.Therefore, if you want to order your results by a field that is not available in the Select clause, you must put the Order By clause before the Select clause. Одним из примеров того, когда это потребуется, является то, что нужно отсортировать запрос по полям, которые не возвращаются как часть результата.One example of when you would have to do this is when you want to sort your query by fields that are not returned as part of the result.

Порядок сортировки для поля по возрастанию и убыванию определяется реализацией интерфейса IComparable для типа данных поля.Ascending and descending order for a field is determined by the implementation of the IComparable interface for the data type of the field. Если тип данных не реализует интерфейс IComparable, порядок сортировки игнорируется.If the data type does not implement the IComparable interface, the sort order is ignored.

ПримерExample

Следующее выражение запроса использует предложение From для объявления переменной диапазона book для коллекции books.The following query expression uses a From clause to declare a range variable book for the books collection. Предложение Order By сортирует результат запроса по цене в возрастающем порядке (по умолчанию).The Order By clause sorts the query result by price in ascending order (the default). Книги с одинаковой ценой сортируются по названию в возрастающем порядке.Books with the same price are sorted by title in ascending order. Предложение Select выбирает свойства Title и Price в качестве значений, возвращаемых запросом.The Select clause selects the Title and Price properties as the values returned by the query.

Dim titlesAscendingPrice = From book In books
                           Order By book.Price, book.Title
                           Select book.Title, book.Price

ПримерExample

Следующее выражение запроса использует предложение Order By для сортировки результатов запроса по цене в убывающем порядке.The following query expression uses the Order By clause to sort the query result by price in descending order. Книги с одинаковой ценой сортируются по названию в возрастающем порядке.Books with the same price are sorted by title in ascending order.

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

ПримерExample

Следующее выражение запроса использует предложение Select для выбора названия книги, цены, даты публикации и автора.The following query expression uses a Select clause to select the book title, price, publish date, and author. Затем он заполняет поля Title, Price, PublishDate и Author переменной диапазона для новой области.It then populates the Title, Price, PublishDate, and Author fields of the range variable for the new scope. Предложение Order By упорядочивает новую переменную диапазона по имени автора, названию книги и стоимости.The Order By clause orders the new range variable by author name, book title, and then price. Каждый столбец сортируется в порядке по умолчанию (по возрастанию).Each column is sorted in the default order (ascending).

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

См. такжеSee also