変更の始まり

offset-clause

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

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

offset-row-count
行が取得される前にスキップする行の数を指定する数値定数または数値変数 (非グローバル変数以外)。 数値は、処理前に BIGINT にキャストされます。 offset-row-count の値は正またはゼロでなければなりません 1。 これを NULL 値にすることはできません。

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

OFFSET の許される使用法: offset-clause は、 DECLARE CURSOR ステートメントまたは準備済み select-statement の外部全選択の一部としてのみ使用できます。 これは、対話式 SQL でサポートされていません。

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

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

1 サポートされる最大値は 4294967288 です。
変更の終わり