offset-clause

offset-clause では、スキップする行数を設定します。

Read syntax diagramSkip visual syntax diagram OFFSET offset-row-count ROWROWS

offset-clause では、行を取得する前にスキップする行数を指定します。 この節を使用して、offset-row-count で指定した数の行をスキップするまでアプリケーションは行の取得を開始しない、ということをデータベース・マネージャーに伝えます。 offset-clause を指定しなかった場合のデフォルトは、OFFSET 0 ROWS に相当します。 中間結果表の行数より多くの行をスキップしようとすると、空の結果表と同じ処理になります。

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

オフセット行カウント (offset-row-count)
行を取得する前にスキップする行数を指定する式。 式には、列参照、スカラー全選択、決定論的ではない関数、外部アクションを持つ関数、またはシーケンス参照を含めることはできません (SQLSTATE 428H7)。 その数値は、正数またはゼロでなければなりません (SQLSTATE 2201X)。 式のデータ・タイプが BIGINT でない場合は、式の結果が BIGINT 値にキャストされます。

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

  • キーワード ROW と ROWS は交換可能です。 どちらを使用しても同じ結果になりますが、1 以外の行数を指定する場合は、ROWS のほうが読みやすくなります。
  • 代替構文: 取得する最大行数が指定されている場合にスキップする行数を設定する代替構文については、fetch-clause に関連した Notes 項目を参照してください。