変更の開始

offset-clause

FL 500 offset 句は、 行を取得する前にスキップする結果表の行数を指定します。

オフセット節の構文

構文図を読むビジュアルシンタックスダイアグラムをスキップする OFFSET オフセット行数 ROWROWS
offset-clauseは、行が取得される前に、offset-row-count で指定された行数をスキップすることを指定します。 offset-clause が指定されない場合のデフォルトは、OFFSET 0 ROWS に相当します。 offset-row-count に中間結果表に行数よりも多くの行が指定される場合、中間結果表は空の結果表として扱われます。
オフセット行数
行を取得する前にスキップする行数を指定する定数または変数。 offset-row-count は、正数またはゼロの数値でなければなりません。 値が BIGINT 値ではない場合、値は BIGINT 値にキャストされます。 offset-row-count は NULL 値であってはなりません。

プリペアド・ステートメントの属性としてオフセット句が指定されている場合、 オフセット行数は変数を参照してはなりません。

offset-clause を含む副選択または全選択は、準備済み SQL ステートメントまたは DECLARE CURSOR ステートメントの最外部の全選択としてのみ許可されます。 offset-clause を含む副選択または全選択は、以下のコンテキストを含む他のコンテキストでは許可されません。
  • ビューの定義
  • マテリアライズ照会表の定義
  • SQL 表関数の RETURN ステートメント
  • 行の許可の定義
  • 列マスクの定義
  • SENSITIVE DYNAMIC カーソルの最外部の全選択

offset-clause は、SELECT INTO ステートメントでも指定できます。

副選択、全選択、または SELECT INTO ステートメントに offset-clause が含まれている場合、副選択、全選択、または SELECT INTO ステートメントの選択リストに、非 deterministic 式または外部アクションを持つ式が含まれていてはなりません。

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

オフセット条件は、動的にスクロールする敏感なカーソルに対しては、外側のフルセレクトで指定してはならない。

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

offset-clause 文節と ORDER BY 文節の両方を指定すると、指定された行数をスキップする前に、結果表全体に対して順序付けが行われます。

行アクセス制御は全選択の許可 ID またはロールがアクセスできる行に影響するため、行アクセス制御は間接的に offset-clause に影響する可能性があります。 列アクセス制御は offset-clause に影響しません。

offset-clause を使用して、結果表のあるポイントから結果表の終わりまでの行を返すことができます。 その場合には、fetch-clause は指定されません。

代替構文:
fetch-clause は、取得する最大行数を指定する際に、スキップする行数を設定するための代替手段です。 シーフェッチ条項
変更の終わり