最初のページを効率的に取り出すために、パイプライン化された最初のN件のみを選択するクエリを 実装できたら、次ページ以降を取りだすクエリも必要になるでしょう。それを実現するためのチャレンジは、前のページの行をどのようにスキップするかです。 これには2つの方法が考えられます。まず1つ目は、先頭から行に番号を付けて、必要なページよりも前の行番号のデータをフィルタする、 オフセット法です。2つ目は、私がシーク法と 呼んでいる、全ページの最後のエントリを検索し、それ以降の必要な行を読み出す方法です。 以下は、最も広く使われているオフセット法の例を表したものです。 この方法の利点は簡単に使える所にあるでしょう。専用のキーワード(offset)が用意されているデータベースでは特にそうです。このキーワードは、fetch first拡張の一部として SQL標準にも採用されています。 DB2DB2はSQL標準
![OFFSETは前の行を読み飛ばすのにはよくない方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/b5dc1b986d0491a7f56531a11754450af3f0424a/height=288;version=1;width=512/https%3A%2F%2Fuse-the-index-luke.com%2Fstatic%2Futil_squirrel.og.fMeqdSQq.png)