ORDER BY 子句 (SQL Server Compact)
指定結果集的排序順序。ORDER BY 子句在子查詢中無效。您也可以選擇使用 OFFSET-FETCH 子句,只從結果集中擷取某一個結果視窗或頁面。
語法
[ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n][<offset_fetch>] ]
<offset_fetch> ::= {OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS } [FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY ]}
引數
order_by_expression
指定要排序的資料行。排序資料行可以指定為名稱或資料行別名,這可以由資料表名稱或運算式檢驗是否合格。這可以指定多重排序資料行。ORDER BY 子句中排序資料行的順序會定義排序結果集的組織方式。ORDER BY 子句可以包含選取清單中未出現的項目。
注意
屬於 ntext 與 image 資料類型的資料行不可以用於 ORDER BY 子句。
ASC
指定特定資料行中的值應該從最低的值到最高的值遞增排序。DESC
指定特定資料行中的值應該從最高的值到最低的值遞減排序。Null 值會視為最低的可能值。OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
指定在開始從查詢運算式傳回資料列之前,要略過的資料列數目。OFFSET 子句的引數可以是大於或等於零的整數或運算式。您可以交換使用 ROW 和 ROWS。FETCH {FIRST|NEXT} <rowcount expression> {ROW|ROWS} ONLY
指定處理 OFFSET 子句之後,要傳回的資料列數目。FETCH 子句的引數可以是大於或等於一的整數或運算式。您可以交換使用 ROW 和 ROWS。同樣地,您也可以交換使用 FIRST 和 NEXT。
備註
ORDER BY 子句中的項目數沒有限制。
若將 ORDER BY 子句搭配 UNION 陳述式使用,則您排序的資料行必須是第一個 SELECT 陳述式指定的資料行名稱或別名。例如,以下第一個 SELECT 陳述式會成功,而第二個會失敗。
此陳述式會成功,因為 col1 屬於第一個資料表 (t1)
Create t1 (col1 int, col2 int);
Create t2 (col3 int, col4 int);
SELECT * from t1 UNION SELECT * from t2 ORDER BY col1;
此陳述式會失敗,因為 col3 不屬於第一個資料表 (t1)
SELECT * from t1 UNION SELECT * from t2 ORDER BY col3;
範例
以下範例以名字順序列出員工。
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name
下列範例示範 OFFSET-FETCH 子句搭配 ORDER BY 的使用方式,其中會略過已排序之結果集的前 10 個資料列,並傳回其餘資料列。
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;