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;

請參閱

參考

OFFSET FETCH 子句 (SQL Server Compact)