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]

MsSQL üzerinde sayfalama işlemi” için bir yorum

  • 21 Haziran 2013 tarihinde, saat 10:32
    Permalink

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

    Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.