SQL Row_Number() Fonksiyonu

Barış Özaydın
Bir Geliştiricinin Maceraları
1 min readJul 5, 2012

Özellikle paging (sayfalama) işlemleri için oldukça kullanışlı bir sql fonksiyonu. Yaptığı iş şudur ki;

sorgu sonucunda oluşan tabloya aslında bir otomatik sayı atar. Yani sorgunuz 100 satır döndürüyorsa her satırın yanında satır numarası da yazar. Böylelikle ben şunu diyebilirim, arkadaşım bana tüm müşterileri getir ama 20 ile 30. kayıtları getir. tek koşulum bu 20 ile 30. satırlar arasındaki kayıtları görmek istiyorum. Bu da genellikle sayfalama işlemlerinde sql performansını arttırmak için kullanılır.

Kullanımı ise şöyle:

select *from

(

SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) AS ‘RowNum’, y.*

FROM Yazilar y

) as t

where t.RowNum between 20 and 30

Böylelikle 20. ve 30. satırlardaki veriyi alabiliyoruz. Arka planda ne yapıyor ne ediyor bilmiyorum ama herhalde bir şekilde tüm verileri çekip onlar arasından 20. satır ile 30. satır arasını almıyordur . umarım yani. yoksa temeli olmaz bunun. sistem çökülür.

--

--