offset-clause
offset-clause では、スキップする行数を設定します。
offset-clause では、行を取得する前にスキップする行数を指定します。この節を使用して、offset-row-count で指定した数の行をスキップするまでアプリケーションは行の取得を開始しない、ということをデータベース・マネージャーに伝えます。offset-clause を指定しなかった場合のデフォルトは、OFFSET 0 ROWS に相当します。中間結果表の行数より多くの行をスキップしようとすると、空の結果表と同じ処理になります。 offset-clause の直後に fetch-clause を指定する必要があります。
スキップする行のセットを予測可能なものにするには、中間結果表の各行のソート順序を一意的に決定するソート・キーを ORDER BY 節で指定する必要があります。中間結果表で、一部の行のソート・キーが重複している場合、それらの行の順序は確定されません。ORDER BY 節がない場合、中間結果表の順序は確定されません。中間結果表の順序が確定的でない場合、スキップされる行のセットを予測することはできません。
- offset-row-count
- 行を取得する前にスキップする行数を指定する式。この式の評価結果は、照会で定数として使用される数値でなければならないので、列名を式に組み込むことはできません (SQLSTATE 428H7)。その数値は、正数またはゼロでなければなりません (SQLSTATE 2201X)。式のデータ・タイプが BIGINT でない場合は、式の結果が BIGINT 値にキャストされます。
全選択の FROM 節に SQL データ変更ステートメントが含まれている場合は、スキップする行数にかかわりなく、すべての行が変更されます。
注
- キーワード ROW と ROWS は交換可能です。どちらを使用しても同じ結果になりますが、1 以外の行数を指定する場合は、ROWS のほうが読みやすくなります。
- 代替構文: 取得する最大行数を指定する場合にスキップする行数を設定するための代替構文については、fetch-clause の「注」の記載を参照してください。
