SQLServerで行範囲を指定してデータを取得する。

よくWebであるページ指定して100件づつとか表示するやつです。

SQL Server2005や2008ではTOPを駆使したり、Row_Number()を使ったりでしたが、2012になってORDER BY 句で指定できるようになりました。

使い方はこんな感じです。800,000件目から100件抽出したい場合、

SELECT
 *
FROM
 TBL_Rireki
ORDER BY ID ASC
 OFFSET 800000 ROWS
 FETCH NEXT 100 ROWS ONLY

ストアドなどで使う場合は変数にできるようです。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください