データ従属または数値ベースのページ編集は、データ位置に基づく結果セットからのデータのサブセットを取得するのに使用されます。
このタスクについて
結果セット内のデータの位置に基づいて結果セットからデータのサブセットを取得するには、データ従属ページ編集または数値ベース・ページ編集のいずれかを使用できます。
プロシージャー
- データ依存型ページネーションの場合:SELECT文で比較演算子(<、<=、>、または>=)とともに行値式を使用して、結果セットの一部のみを取得します。
基本述部とともに使用すると、行値の式によって、アプリケーションは、論理キー値に基づいてDb2 結果表の一部にのみアクセスできます。
次のSELECTステートメントは、
LASTNAME列の値が「SMITH」以上で、
FIRSTNAME列の値が「JOHN」より大きい表から情報を返します。
SELECT EMPNO, LASTNAME, HIREDATE
FROM DSN8C10.EMP
WHERE (LASTNAME, FIRSTNAME) >= ('SMITH', 'JOHN')
ORDER BY HIREDATE ASC;
- 数値ベースのページネーションの場合:OFFSET句(単独で、またはFETCH句と組み合わせて)を使用して、結果セットから指定した行数をスキップします。
絶対位置に基づいてDb2 結果セットの一部にアクセスするには、 SELECT ステートメントの一部として OFFSET 節を指定できます。 OFFSET 節は、結果セットの先頭からスキップする行数を指定します。これは、不要な行をより効率よくフィルターに掛ける方法です。 OFFSET 節を FETCH 節と一緒に使用すると、結果セットから戻される行数をさらに制限できます。
次の SELECT ステートメントは、T1 表の最初の 100 行をスキップしてから照会の行を戻します。
SELECT * FROM T1
OFFSET 100 ROWS;
OFFSET 節を FETCH 節と一緒に使用すると、表の先頭から指定された行数だけスキップしてから FETCH 節で指定された行数を戻します。
SELECT * FROM T1
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY;
3
ページ
の10 行をそれぞれ戻すには、以下の SQL ステートメントのようなステートメントを使ってください。
SELECT * FROM T1
OFFSET 0 ROWS
FETCH FIRST 10 ROWS ONLY;
SELECT * FROM T1
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
SELECT * FROM T1
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;
この例は、3 つの別個の SQL ステートメントであり、それぞれに OFFSET 節に異なる値があります。 各 SELECT ステートメントは新規の SQL ステートメントとして処理されます。