SQL Server 2005でページング

今日はチョット小物のアプリケーションを作っていて、SQL Server 2005でページング処理をやってました(・∀・)
SQL Server 2005からはROW_NUMBER()があるので、それを使ってページングできるようになっていますが。


こういう感じのやつですね。

SELECT Id, UserName, CategoryId, Category, Word, CreatedAt
  FROM
     (
      SELECT Id, UserName, Category, Word, CreatedAt,
             ROW_NUMBER() OVER(ORDER BY CreatedAt) as RowNum
        FROM SoliloquyInfo
     ) as SoliloquyInfo_
 WHERE RowNum BETWEEN 11 AND 20

ObjectDataSource用にストアドで作成して、ORDER BYで指定する項目にSortParameterNameの値を使用する風になります。


データ件数がしれてるものなら、ObjectDataSourceで高度なページングをする必要も無いですけど。
今回の処理は、どんどんデータが溜まっていくもの用だったので、ちゃんとしたページング(&ソート)を作りました(`・ω・´)


でも、ページングの処理なんて、PostgreSQLのOFFSET/LIMITやMySQLのLIMITの方が楽だよな〜と思ったり(´ω`)
列名を2回書くのがね…。


後は、ページング処理以外にも今回はロジックをストアド主体で実装してみたり。
まあ、Visual Studioでストアドのデバッグするのは、それはそれで楽しいカンジです。