Mssql Offset-Fetch Kullanımı ve Pagination
Mssql 28 Nisan, 2020

Merhabalar,

Bu yazımda sizlere SQL de verileri sayfalamalı olarak çekmeyi(paging) ve SQL Server 2012 ile gelen 2 yeni özelliği Offset ve Fetch kullanımlarından bahsedeceğim.

Örnek veritabanı olarak Northwind kullanacağız, internette kolaylıkla bulup kendi bilgisayarınıza kurabilirsiniz.

Aşağıda Customer tablosunun verilerini görmektesiniz.

SELECT * FROM Customer

Sql de sayfalama işlemleri için Offset ve Fetch keyword lerini birlikte kullanırız ancak Offset deyimi tek başına da kullanılabilir. Aşağıdaki gibi kullanılırsa ilk 2 kayıt hariç tüm kayıtlar gelecektir. Ayrıca Offset kullanımı için ORDER BY kullanımı zorunludur.

SELECT * FROM  Customers ORDER BY CustomerId OFFSET 2 ROWS;	

Aşağıdaki gibi Offset ve Fetch deyimleri birlikte kullanılırsa yalnızca ilk 2 kayıttan sonraki 2 kayıt alınmış olur. 

SELECT * FROM Customers ORDER BY CustomerId OFFSET 2 ROWS FETCH NEXT 2 ROWS ONLY;

Bu işlemi parametrik yaparsak @PageNumber ve @RowNumber parametreleriyle n. sayfadan n tane kayıt alınmış olur.

DECLARE @PageNumber AS INT, @RowNumber AS INT
SET @PageNumber = 1
SET @RowNumber = 5

SELECT *
FROM Customers
ORDER BY CustomerId
OFFSET ((@PageNumber - 1) * @RowNumber) ROWS
FETCH NEXT @RowNumber ROWS ONLY;

Kodlamaya devam!

 


Yorumlar

Mssql Offset-Fetch Kullanımı ve Pagination
Mssql 28 Nisan, 2020

Merhabalar,

Bu yazımda sizlere SQL de verileri sayfalamalı olarak çekmeyi(paging) ve SQL Server 2012 ile gelen 2 yeni özelliği Offset ve Fetch kullanımlarından bahsedeceğim.

Örnek veritabanı olarak Northwind kullanacağız, internette kolaylıkla bulup kendi bilgisayarınıza kurabilirsiniz.

Aşağıda Customer tablosunun verilerini görmektesiniz.

SELECT * FROM Customer

Sql de sayfalama işlemleri için Offset ve Fetch keyword lerini birlikte kullanırız ancak Offset deyimi tek başına da kullanılabilir. Aşağıdaki gibi kullanılırsa ilk 2 kayıt hariç tüm kayıtlar gelecektir. Ayrıca Offset kullanımı için ORDER BY kullanımı zorunludur.

SELECT * FROM  Customers ORDER BY CustomerId OFFSET 2 ROWS;	

Aşağıdaki gibi Offset ve Fetch deyimleri birlikte kullanılırsa yalnızca ilk 2 kayıttan sonraki 2 kayıt alınmış olur. 

SELECT * FROM Customers ORDER BY CustomerId OFFSET 2 ROWS FETCH NEXT 2 ROWS ONLY;

Bu işlemi parametrik yaparsak @PageNumber ve @RowNumber parametreleriyle n. sayfadan n tane kayıt alınmış olur.

DECLARE @PageNumber AS INT, @RowNumber AS INT
SET @PageNumber = 1
SET @RowNumber = 5

SELECT *
FROM Customers
ORDER BY CustomerId
OFFSET ((@PageNumber - 1) * @RowNumber) ROWS
FETCH NEXT @RowNumber ROWS ONLY;

Kodlamaya devam!

 


Benzer Yazılar

mssql-json-fonksiyonlari

Mssql JSON Fonksiyonları

07 Mayıs, 2020

mssql-json-kullanimi

Mssql JSON Kullanımı

03 Mayıs, 2020

mssql-merge-kullanimi

Mssql Merge Kullanımı

14 Mayıs, 2020

Yorumlar