OFFSET FETCH 子句 (SQL Server Compact)
OFFSET-FETCH 子句為您提供一個選項,讓您只從結果集中擷取某一個結果視窗或頁面。OFFSET-FETCH 只能搭配 ORDER BY 子句使用。
語法
[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]}
引數
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
指定在開始從查詢運算式傳回資料列之前,要略過的資料列數目。OFFSET 子句的引數可以是大於或等於零的整數或運算式。您可以交換使用 ROW 和 ROWS。FETCH { FIRST|NEXT } <資料列計數運算式> { ROW|ROWS } ONLY
指定處理 OFFSET 子句之後,要傳回的資料列數目。FETCH 子句的引數可以是大於或等於一的整數或運算式。您可以交換使用 ROW 和 ROWS。同樣地,您也可以交換使用 FIRST 和 NEXT。
使用 OFFSET-FETCH 的限制
ORDER BY 會強制使用 OFFSET 和 FETCH 子句。
OFFSET 子句則強制搭配 FETCH 使用。您絕對不可以使用 ORDER BY … FETCH。
TOP 不可以在相同查詢運算式中與 OFFSET 和 FETCH 結合。
OFFSET/FETCH 資料列計數運算式可以是任何將傳回整數值的算術、常數或參數運算式。資料列計數運算式不支援純量子查詢。
範例
下列範例示範 OFFSET-FETCH 子句搭配 ORDER BY 的使用方式。
範例 1:略過已排序之結果集的前 10 個資料列,並傳回其餘資料列。
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;
範例 2:略過已排序之結果集的前 10 個資料列,並傳回接下來的 5 個資料列。
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;