FETCH FIRST 文節

変更の始まりFETCH FIRST 節 は、検索できる最大行数を設定します。 これは、中間結果表内の行数に関係なく、アプリケーションが最大 fetch-first-row-count 行までしか取得しないことを、データベース・マネージャーに認識させます。 fetch-first-row-count 行を超えて取り出そうとすると、通常のデータの終わりと同様に処理されます。変更の終わり

構文図を読む構文図をスキップする
                     .-1---------------------.             
>>-FETCH--+-FIRST-+--+-----------------------+--+-ROW--+-------->
          '-NEXT--'  '-fetch-first-row-count-'  '-ROWS-'   

>--ONLY--------------------------------------------------------><

変更の始まりfetch-first-row-count変更の終わり
変更の始まり取得する行の最大数を指定する数値定数または変数 (非グローバル変数以外)。 数値は、処理前に BIGINT にキャストされます。 fetch-first-row-count の値は、正でなければなりません。 これを NULL 値にすることはできません。変更の終わり

結果表を指定された行数に制限するとパフォーマンスが向上する可能性があります。 場合によっては、データベース・マネージャーは、指定された行数を判別したときに、照会の処理を停止します。変更の始まりoffset-row-count に定数を含む offset-clause も指定された場合、 データベース・マネージャーは、処理を停止するタイミングを判別する際にこの定数オフセット値も考慮します。変更の終わり

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

ORDER BY 文節FETCH FIRST 文節 の両方を指定すると、 順序付けされたデータに対して常に FETCH FIRST 操作が実行されます。 選択ステートメントFETCH FIRST 文節 を指定すると、結果表は読み取り専用 になります。 読み取り専用 の結果表は、UPDATE または DELETE ステートメントで参照してはなりません。 FETCH FIRST 文節 は、UPDATE 文節が入っているステートメント中では使用できません。

行アクセス制御は副選択の許可 ID がアクセスできる行に影響するため、行アクセス制御は間接的に FETCH FIRST 節に影響する可能性があります。

変更の始まり

変数の許される使用法: fetch-first-row-count は、 DECLARE CURSOR ステートメントまたは準備済み select-statement の外部全選択の一部としてのみ、変数として指定できます。

FIRST および NEXT: FIRST キーワードと NEXT キーワードは相互に置き換えて使用できます。 結果は変わりません。ただし、offset-clause の使用時に、キーワード NEXT のほうが一般的に読みやすくなります。

代替構文: 他のデータベース製品で使用される SQL との互換性のために、以下がサポートされています。 これらの代替は非標準のものです。 OFFSET 文節と LIMIT 節は、照会の最外部全選択でのみ指定することができます。
表 1.
代替構文 同等の構文
LIMIT x FETCH FIRST x ROWS ONLY
LIMIT x OFFSET y OFFSET y ROWS FETCH FIRST x ROWS ONLY
LIMIT y, x OFFSET y ROWS FETCH FIRST x ROWS ONLY
変更の終わり