offset-clause
offset-clause では、行が取得される前にスキップする行の数を設定します。 これは、offset-row-count 行スキップされるまでアプリケーションが行の取得を開始しないことを、データベース・マネージャーに認識させます。 offset-clause が指定されない場合、デフォルトは OFFSET 0 ROWS と同等になります。 offset-row-count に中間結果表に行数よりも多くの行が指定される場合、中間結果表は空の結果表として扱われます。
- オフセット行カウント (offset-row-count)
- 行を取得する前にスキップする行数を指定する式。 offset-row-count には、 スカラー全選択、列参照、表参照、ユーザー定義関数参照、またはチェック制約で制限付きとして識別される組み込みスカラー関数を含めることはできません。 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 に関連した注項目を参照してください。
