「DB2」でSELECT文の取得件数を制限し、任意の件数を取得したい。
調べてみると、次のような書き方ができるようだ。
なお、今回のバージョンは以下です。
- DB2/400
FETCH FIRST X ROWS ONLYを使用して、はじめのX件を取得するSQL
はじめのX件を取得したい場合は、「FETCH FIRST X ROWS ONLY」を使用する。
使用例はこちら。
1 2 3 4 5 6 7 8 | --testテーブルをcolumn1順にはじめの100件のみ取得する SELECT column1 FROM test ORDER BY column1 FETCH FIRST 100 ROWS ONLY |
ROWNUMBER関数を使用して、X件目~Y件目を取得するSQL
X件目~Y件目を取得したい場合は、ROWNUMBER関数を使用して行番号を振り、そこから取得件数を制限することができる。
使用例はこちら。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | --testテーブルをcolumn1順に101件目~200件目のみ取得する SELECT column1 FROM ( SELECT column1, ROWNUMBER() OVER ( ORDER BY column1) AS rownum FROM test ) AS t WHERE rownum BETWEEN 101 AND 200 ORDER BY rownum |
最後に
DB2でSELECT文の取得件数を制限し、任意の件数を取得することができた。
なお、SQL Serverの場合はこちらの記事を参考にしてください。
コメント