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 のほうが一般的に読みやすくなります。
代替構文 | 同等の構文 |
---|---|
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 |