SQL Server Offset Fetch kullanımı. Bu yazıda, OFFSET ve FETCH cümlelerini inceliyoruz. OFFSET ve FETCH, bir dizi kayıt almak için bir araç sağlamak üzere SELECT deyimi ORDER BY deyimi ile birlikte kullanılır. Dönecek başlangıç satırı, OFFSET değeri ve bu noktadan döndürülecek maksimum satır sayısı FETCH tarafından belirlenir.
OFFSET ve FETCH söz dizimi
Söz dizimi aşağıdaki gibidir.
ORDER BY column_list [ASC |DESC]
OFFSET offset_row_count {ROW | ROWS}
FETCH {FIRST | NEXT} fetch_row_count {ROW | ROWS} ONLY
Bu sözdiziminde:
- OFFSETdeyimi, sorgudan satır döndürmeye başlamadan önce atlanacak satır sayısını belirtir.offset_row_count , sıfıra eşit veya daha büyük olan bir sabit, değişken veya parametre olabilir.
- FETCHdeyimi, OFFSET deyimi işlendikten sonra döndürülecek satır sayısını belirtir.offset_row_count bire eşit veya daha büyük olan sabit, değişken veya skaler olabilir.
- FETCH deyimi isteğe bağlı iken OFFSET deyimi zorunludur. Ayrıca, FIRST ve NEXT sırasıyla eşanlamlıdır, böylece bunları birbirlerinin yerine kullanabilirsiniz. Benzer şekilde, FIRSTve NEXT değişmeli olarak kullanabilirsiniz.
Aşağıdaki OFFSET ve FETCH yan tümcelerini gösterir:
Resim-1
ORDER BY ile kullanım
OFFSET ve FETCH yan tümceleri ORDER BY yan tümcesi ile kullanmanız gerektiğini unutmayın. Aksi takdirde, bir hata alırsınız.
OFFSET ve FETCH yan tümcelerini, sorgu sayfalama çözümünü TOP yan tümcesinden daha fazla uygulamak için tercih edebilirsiniz.
SQL Server OFFSET ve FETCH örnekleri
Örnek tablodaki products tablosunu tanıtım için kullanacağız.
Resim-2
Aşağıdaki sorgu, products tablosundaki tüm ürünleri döndürür ve ürünleri liste fiyatlarına ve adlarına göre sıralar:
SELECT
product_name, list_price FROM production.products
ORDER BY
list_price,
product_name;
Resim-3
İlk 10 ürünü atlayıp geri kalanını iade etmek için, OFFSET yan tümcesini aşağıdaki ifadede gösterildiği gibi kullanırsınız:
SELECT
product_name, list_price FROM production.products
ORDER BY
list_price,
product_name
OFFSET 10 ROWS;
Resim-4
İlk 10 ürünü atlayıp sonraki 10 ürünü seçmek için, hem OFFSET hem de FETCH yan tümcelerini kullanın:
SELECT
product_name, list_price FROM production.products
ORDER BY
list_price,
product_name
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
Resim-5
En pahalı 10 ürünü almak için hem OFFSET hem de FETCH cümlelerini kullanırsınız:
SELECT
product_name, list_price FROM production.products
ORDER BY
list_price DESC,
product_name
OFFSET 0 ROWS
FETCH FIRST 10 ROWS ONLY;
Resim-6
Bu örnekte, ORDER BY cümlesi, ürünleri azalan sırayla liste fiyatlarına göre sıralar. OFFSET deyimi sıfır satırı atlar ve FETCH deyimi listedeki ilk 10 ürünü alır.
Bu öğreticide, SQL Offset Fetch kullanımı için örnek cümleleri nasıl kullanacağınızı öğrendiniz
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
www.mshowto.org
TAGs: SQL Server, SQL Server Order By, OFFSET FETCH, SQL sıralama, sql performans, performanslı sıralama
sanırım “fetch_row_count” yazacağınız yere “offset_row_count” yazmışsınız.