SQLServer2005 でページング処理を簡単にできる方法を見っけた。
ROW_NUMBER関数を使用することで、行に番号をつけて、その中から指定範囲で取得することができる。
検索しててどっかのページにあったんやけど、忘れた。
今、自分でやってるのをメモっとく。
SELECT SUB_TABLE.* FROM (SELECT ROW_NUMBER() OVER(ORDER BY 列名1,列名3) AS rownum ,列名1,列名2,列名3,列名4, FROM TABLE1) AS SUB_TABLE WHERE SUB_TABLE.rownum BETWEEN 11 to 20 ORDER BY SUB_TABLE.列名1,SUB_TABLE.列名3
これで取得結果の11行目から20行目が取得できます。
ポイントは2カ所にあるORDER BY句。
これを同じ並びにしないと、正しい結果を取得できないので注意。
これは役に立った。これで今のシステムページング処理やってるし