変更の開始

データ位置に基づく結果セットの一部へのアクセス

データ従属または数値ベースのページ編集は、データ位置に基づく結果セットからのデータのサブセットを取得するのに使用されます。

このタスクについて

結果セット内のデータの位置に基づいて結果セットからデータのサブセットを取得するには、データ従属ページ編集または数値ベース・ページ編集のいずれかを使用できます。

プロシージャー

  • データ依存型ページネーションの場合: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 ステートメントとして処理されます。

変更の終わり