offset-clause

offset-clause では、行が取得される前にスキップする行の数を設定します。 これは、offset-row-count 行スキップされるまでアプリケーションが行の取得を開始しないことを、データベース・マネージャーに認識させます。 offset-clause が指定されない場合、デフォルトは OFFSET 0 ROWS と同等になります。 offset-row-count に中間結果表に行数よりも多くの行が指定される場合、中間結果表は空の結果表として扱われます。

構文図を読む構文図をスキップする
>>-OFFSET--offset-row-count--+-ROW--+--------------------------><
                             '-ROWS-'   

offset-row-count
行を取得する前にスキップする行数を指定する式。offset-row-countscalar-fullselect、列参照、表参照、ユーザー定義関数参照、および検査制約で制限と識別された組み込みスカラー関数を含めてはなりません。 check-constraint を参照してください。 式のデータ・タイプが BIGINT でない場合は、式の結果が BIGINT 値にキャストされます。 offset-row-count の値は、正数またはゼロでなければなりません。 これを NULL 値にすることはできません。

スキップする行の予測される集合を決定するには、中間結果表内の各行のソート順序を一意的に識別するソート・キーを使用した ORDER BY 文節の指定が必要です。 一部の行について重複するソート・キーが中間結果表に含まれると、行の順序は決定的ではありません。 ORDER BY 文節がない場合、中間結果表は、決定的順序ではありません。 中間結果表の順序が決定的でないと、スキップされた行集合は予測不能になります。

offset-clause は、ビューの最外部の全選択で指定することはできません。

全選択の FROM 節に SQL データ変更ステートメントが含まれている場合は、スキップする行数にかかわりなく、すべての行が変更されます。

select-list の制約事項: offset-clause を含む全選択の select-list には、NEXT VALUE シーケンス式を含めてはなりません。また、非決定的な関数、外部アクションである関数、および SQL データを変更する関数を含めることもできません。

代替構文: 取得する最大行数の指定でスキップする行数を設定するための代替構文については、fetch-clause に関する注の項目を参照してください。