メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

FETCH

カーソルを使用して行を取得します。カーソルの宣言について詳しくは、「DECLARE」を参照してください。

FETCH は、カーソル内の現在の位置に基づいて行を取得します。カーソルを作成すると、最初の行の前に位置が設定されます。FETCH 後は、最後に取得した行にカーソル位置が設定されます。使用できる最後の行まで FETCH を実行すると (FETCH ALL の後など)、カーソル位置は最後の行の後になります。

FORWARD 0 では、現在の行を取得し、カーソルを移動しません。つまり、最後に取得した行を取得します。カーソル位置が最初の行の前、または最後の行の後の場合、行は返されません。

カーソルの最初の行が取得されると、必要に応じて、結果セット全体がリーダーノード、メモリ内、またはディスク上にマテリアライズされます。大きな結果セットにカーソルを使用すると、パフォーマンスが低下する可能性があるため、可能な限り、別の方法を使用することをお勧めします。詳細については、「カーソルを使用するときのパフォーマンスに関する考慮事項」を参照してください。

詳細については、「DECLARE」および「CLOSE」を参照してください。

構文

Copy
FETCH [ NEXT | ALL | {FORWARD [ count | ALL ] } ] FROM cursor

Parameters

NEXT

次の行を取得します。これがデフォルト値です。

ALL

残りのすべての行を取得します (FORWARD ALL と同じです)。単一ノードクラスターでは、ALL はサポートされません。

FORWARD [ count | ALL ]

次の count の行、または残りのすべての行を取得します。FORWARD 0 は、現在の行を取得します。単一ノードクラスターでは、数値の最大値は 1000 です。単一ノードクラスターでは、FORWARD ALL はサポートされません。

cursor

新しいカーソルの名前。

FETCH の例

次の例では、LOLLAPALOOZA というカーソルを宣言し、Lollapalooza イベントの売り上げ情報を選択した後、カーソルを使用して結果セットから行を取得します。

Copy
-- Begin a transaction begin; -- Declare a cursor declare lollapalooza cursor for select eventname, starttime, pricepaid/qtysold as costperticket, qtysold from sales, event where sales.eventid = event.eventid and eventname='Lollapalooza'; -- Fetch the first 5 rows in the cursor lollapalooza: fetch forward 5 from lollapalooza; eventname | starttime | costperticket | qtysold --------------+---------------------+---------------+--------- Lollapalooza | 2008-05-01 19:00:00 | 92.00000000 | 3 Lollapalooza | 2008-11-15 15:00:00 | 222.00000000 | 2 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 3 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 4 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 1 (5 rows) -- Fetch the next row: fetch next from lollapalooza; eventname | starttime | costperticket | qtysold --------------+---------------------+---------------+--------- Lollapalooza | 2008-10-06 14:00:00 | 114.00000000 | 2 -- Close the cursor and end the transaction: close lollapalooza; commit;

このページの内容: