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. 返された値の順序付け方法を示す、現在のクエリ結果の1つまたは複数のフィールド。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. @No__t-0 または 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

@No__t-0 句を使用して、クエリの結果を並べ替えることができます。You can use the Order By clause to sort the results of a query. @No__t-0 句は、現在のスコープの範囲変数に基づいてのみ結果を並べ替えることができます。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. クエリ内の @no__t 0 句の前に定義された範囲変数は、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. これを行う必要がある場合の1つの例は、結果の一部として返されないフィールドによってクエリを並べ替える場合です。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 句を使用して、books コレクションの範囲変数 book を宣言しています。The following query expression uses a From clause to declare a range variable book for the books collection. @No__t-0 句は、クエリ結果を価格で昇順に並べ替えます (既定値)。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. @No__t-0 句は、クエリによって返される値として、TitlePrice のプロパティを選択します。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. 次に、新しいスコープの範囲変数の TitlePricePublishDate、および Author の各フィールドを設定します。It then populates the Title, Price, PublishDate, and Author fields of the range variable for the new scope. @No__t-0 句は、作成者名、書籍のタイトル、価格で新しい範囲変数を並べ替えます。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