MsSQL üzerinde sayfalama işlemi
Merhaba,
Makalede MSSQL 2008 ve MSSQL 2012 de sayfalama yapma işlemini anlatacağım.
MSSQL 2008
T-SQL’de TOP anahtarını kullanarak SELECT ile geriye dönen liste içerisinden belirttiğimiz sayıdaki ilk kayıtları almak için kullanıyoruz. Ancak 10 ile 20 arasındaki kayıtları alamıyorduk. MSSQL 2008 de bunun için ROW_NUMBER() geliştirildi. Kullanımı ise aşağıdaki gibidir,
Declare @SayfaNo INT=2; Declare @SayfaBoyutu INT=3; WITH MusteriListesi AS ( SELECT ROW_NUMBER() OVER(ORDER BY ID) AS SatirNo ,m.* FROM Musteriler as m ) SELECT * FROM MusteriListesi WHERE SatirNo BETWEEN (@SayfaNo - 1) * @SayfaBoyutu + 1 AND @SayfaNo * @SayfaBoyutu
MSSQL 2012
Yukarıdaki ROW_NUMBER() performansımdan ve daha kolay kullanım sağlamak için yeni geliştirmeler bulunmaktadır.
SELECT * FROM Musteriler ORDER BY ID ASC OFFSET 200 ROWS FETCH NEXT 220 ROWS ONLY
Umarım faydalı bir makale olur.
Click to rate this post!
[Total: 0 Average: 0]
Çok işime yaradı. Yararlı bir makale. Sql ile ilgili yazılarınızın devamını bekliyoruz. Teşekkürler.