共用方式為


ORDER BY (Entity SQL)

指定在 SELECT 語句中傳回之物件上使用的排序順序。

語法

[ ORDER BY
   {
      order_by_expression [SKIP n] [LIMIT n]
      [ COLLATE collation_name ]
      [ ASC | DESC ]
   }
   [ ,…n ]
]

論點

order_by_expression 指定要排序之屬性的任何有效查詢表達式。 您可以指定多個排序表示式。 ORDER BY 子句中排序表達式的順序會定義排序結果集的組織。

COLLATE {collation_name} 指定應該根據 中指定的 collation_name定序執行 ORDER BY 作業。 COLLATE 僅適用於字串表達式。

ASC 指定指定屬性中的值應該以遞增順序排序,從最低值到最高值。 這是預設值。

DESC 指定指定屬性中的值應該以遞減順序排序,從最高值到最低值。

LIMIT n 只會選取第一 n 個專案。

SKIP n 略過第一 n 個專案。

備註

ORDER BY 子句會以邏輯方式套用至 SELECT 子句的結果。 ORDER BY 子句可以使用別名來參考選取清單中的專案。 ORDER BY 子句也可以參考目前在範圍內的其他變數。 不過,如果已使用 DISTINCT 修飾詞指定 SELECT 子句,ORDER BY 子句只能參考 SELECT 子句中的別名。

SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2

ORDER BY 子句中的每個運算式都必須評估為某種類型,這些類型可以比較排序的不等比較(小於或大於等等)。 這些類型通常是純量基本類型,例如數位、字串和日期。 可比較類型的 RowType 也是可比較的順序。

如果您的程式代碼逐一查看已排序的集合,而不是最上層投影,則輸出不保證會保留其順序。

在下列範例中,保證會保留順序:

SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName

在下列查詢中,會忽略巢狀查詢的順序:

SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2

若要擁有已排序的 UNION、UNION ALL、EXCEPT 或 INTERSECT 作業,請使用下列模式:

SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...

受限制的關鍵詞

在 子句中使用時,下列關鍵詞必須以引弧括住 ORDER BY

  • 十字

  • 滿

  • 鑰匙

  • 左邊

  • 訂單

  • 外部

  • 正確

  • ROW

  • 價值

排序巢狀查詢

在 Entity Framework 中,巢狀表達式可以放在查詢中的任何位置;不會保留巢狀查詢的順序。

下列查詢會依姓氏排序結果:

SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName

在下列查詢中,會忽略巢狀查詢的順序:

SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2

範例

下列 Entity SQL 查詢會使用 ORDER BY 運算子來指定 SELECT 語句中傳回之物件所使用的排序順序。 查詢是以 AdventureWorks 銷售模型為基礎。 若要編譯並執行此查詢,請遵循下列步驟:

  1. 遵循 如何:執行會傳回 StructuralType 結果的查詢中的程式。

  2. 將下列查詢當做自變數傳遞至 ExecuteStructuralTypeQuery 方法:

SELECT VALUE p FROM AdventureWorksEntities.Products 
    AS p ORDER BY p.ListPrice

另請參閱