İçeriğe geç

SQL ile sayfalama, sql pagination

1.626 defa okundu

Konu: Raporlama

İnternet sayfalarında tablo gibi birçok kayıt listeleme yapılması halinde sayfa sayfa (paging) halinde gelir. Böylece internet sayfası çok hızlı yüklenir. İnternet programcıları sayfalama (paging) işlemini kullandıkları yazılım dili veya kütüphanesi sayesinde yapabilirler. Ancak bazı durumlarda SQL ile sayfalama yapma ihtiyacı doğabilir. MS SQL ile paging (sayfalama) yapılmak istenirse aşağıda bulunan iki sorgudan herhangi biri kullanılabilir.

Öncelikle bir veri seti için geçici bir tablo oluşturalım. SQL veri seti aşağıdaki linkte TSQL kodu olarak verilmiştir.

Şehirler SQL Veri Seti Linki burada bulunan sql kopyanıp kullanılabilir.

Oluşturulan tablo bir kısmı aşağıdaki gibidir.

SQL
  1. SELECT * FROM #TEMP
PLAKA KODU TELEFON ALAN KODU ŞEHİR BÖLGE
01 322 ADANA AKDENİZ BÖLGESİ
02 416 ADIYAMAN GÜNEYDOĞU BÖLGESİ
03 272 AFYONKARAHİSAR EGE BÖLGESİ
04 472 AĞRI DOĞU ANADOLU BÖLGESİ
05 358 AMASYA KARADENİZ BÖLGESİ
06 312 ANKARA İÇ ANADOLU BÖLGESİ
07 242 ANTALYA AKDENİZ BÖLGESİ
08 466 ARTVİN KARADENİZ BÖLGESİ
09 256 AYDIN EGE BÖLGESİ
10 266 BALIKESİR MARMARA BÖLGESİ

İstenilen sayıda kayıt ve istenilen sayfanın gelmesi için parametrik olarak değer atanabilir.

SQL
  1. ---ROWS FETCH İLE SAYFALAMA
  2. DECLARE @KAYITSAYISI int
  3. DECLARE @SAYFA int
  4. SET @KAYITSAYISI = 5
  5. SET @SAYFA = 2
  6. SELECT ILKOD,SEHIR,BOLGE FROM #TEMP
  7. ORDER BY ILKOD
  8. OFFSET @KAYITSAYISI * (@SAYFA - 1) ROWS FETCH NEXT @KAYITSAYISI ROWS ONLY;
  9. ---ROW NUMBER İLE SAYFALAMA
  10. DECLARE @ILKKAYIT INT
  11. DECLARE @SONKAYIT INT
  12. SET @ILKKAYIT = 6
  13. SET @SONKAYIT = 10
  14. SELECT ILKOD,SEHIR,BOLGE
  15. FROM
  16. (SELECT ILKOD,SEHIR,BOLGE, ROW_NUMBER() OVER (ORDER BY ILKOD) AS SIRA
  17. FROM #TEMP) AS SEHIRLER
  18. WHERE SIRA >= @ILKKAYIT AND SIRA <= @SONKAYIT
  19. ORDER BY ILKOD

Sorgu Sonucu:

ILKOD SEHIR
BOLGE
06 ANKARA IÇ ANADOLU BÖLGESI
07 ANTALYA AKDENIZ BÖLGESI
08 ARTVIN KARADENIZ BÖLGESI
09 AYDIN EGE BÖLGESI
10 BALIKESIR MARMARA BÖLGESI

Bu yazıdaki belgeler

Bu yazı işinize yaradı mı?

Raporlama konusundaki diğer yazılar

Raporlama: 10 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar