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.

PaylaşShare on Facebook0Tweet about this on TwitterShare on Google+0Pin on Pinterest0Share on Tumblr0Share on LinkedIn0Email this to someone

Yazar Hakkında Yazarın Bütün Yazıları Yazarın Web Sitesi

Mertcan Kibar

1 YorumYorum Yazmak İçin

  • Çok işime yaradı. Yararlı bir makale. Sql ile ilgili yazılarınızın devamını bekliyoruz. Teşekkürler.

Bir Cevap Yazın

Your email address will not be published. Required fields are marked *

*