MSSQL Üzerinde Belirli Aralıktaki Verileri Listelemek
-
Veritabanı kullandığınız projelerde yapılan işlemlerden birisi de başlangıç noktası belirtilen verilerin istenilen sayıda listelenmesini sağlayan örnek uygulamamız.
Öncelikle tablomuzu oluşturalım.
Haberler Tablosu (Örnek)
CREATE TABLE [tblHaberler] ( [haberID] INT PRIMARY KEY NOT NULL IDENTITY(1,1), [baslik] NVARCHAR(255), [ozet] NVARCHAR(255), [icerik] NVARCHAR(MAX), [eklenme_tarihi] DATETIME NULL DEFAULT (getdate()), [yayin_durumu] TINYINT DEFAULT ((0)) )
İçerisine biraz kayıtlar ekleyelim (41 adet haber ekledim)
Kayıtlar Eklendi
Belirli sayıda kayıt (veri) listeleme yöntemlerini hatırlayalım. Son "n" tane veriyi çekmek için gereken sorgumuz basit şekilde şu.
Son 7 KayıtSelect top 7 * FROM tblHaberler ORDER BY haberID DESC
İlk "n" tane veriyi çekmek için gereken sorgumuz keza şu şekildedir.
İlk 7 KayıtSelect top 7 * FROM tblHaberler ORDER BY haberID ASC
Peki, ilk 20 kayıttan sonraki 5 kaydı nasıl listeleriz? (21, 22, 23, 24, 25 numaralı kayıtları nasıl lesteleriz)
5 Kayıt (Kod)
SELECT * FROM tblHaberler ORDER BY haberID ASC OFFSET 20 ROWS FETCH FIRST 5 ROWS ONLY
5 Kayıt (Sonuç)

Tam tersi olarak, son 5 kayıttan önceki 3 kaydı nasıl listeleriz? (36, 35, 34 numaralı kayıtları nasıl lesteleriz)
3 Kayıt (Kod)SELECT * FROM tblHaberler ORDER BY haberID ASC OFFSET 5 ROWS FETCH FIRST 3 ROWS ONLY

Bol sorgular :)
Makalenin kaynağı: ontedi.com
-
Eline sağlık hocam bilmeyenler için güzel bir makale olmuş.
-
en alttaki sorguda desc yerine asc yazmıssın hocam.
-
Hannibal_King bunu yazdı
en alttaki sorguda desc yerine asc yazmıssın hocam.
tam şimdi sql kurslarımı bitirdim üstüne tatlı niyetine geldi teşekkürler :) ve evet sanki öyle olmalı gibi bence de...
