DB2では(バージョン9.7を使用)、次のクエリを使用してテーブルの最初の10行を選択できることを知っています。
SELECT *
FROM myTable
ORDER BY id
FETCH FIRST 10 ROWS ONLY
しかし、たとえば、行11から20を取得するにはどうすればよいですか?主キーまたはIDを使用して私を助けることはできません...
前もって感謝します!
状態名、略語などを含むテーブルから行を取得するサンプルクエリを次に示します。
SELECT *
FROM (
SELECT stabr, stname, ROW_NUMBER() OVER(ORDER BY stname) AS rownumber
FROM states
WHERE stcnab = 'US'
) AS xxx
WHERE rownumber BETWEEN 11 AND 20 ORDER BY stname
編集:
ORDER BY
は、クエリの実行間で行番号が一貫していることを保証するために必要です。
MYSQL互換性も使用できます。 MYSのベクトル互換性をアクティブにして、クエリでLimitとOffsetを使用するだけです。
db2set DB2_COMPATIBILITY_VECTOR=MYS
db2stop
db2start