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
子句來宣告 books
集合的範圍變數 book
。 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