SQL Server LEAD() İşlevi

Sql Server Lead Islevi



Bu makalede, size SQL Server'da lead() işleviyle çalışmanın temellerini anlatacağız. Fonksiyonun ne yaptığını, sözdizimini ve nasıl kullanılacağına dair pratik örnekleri ele alacağız.

SQL Server Öncü İşlevi

SQL Server'daki lider işlevi, kendi kendine birleştirme olmadan aynı sonuç kümesindeki sonraki bir satırdaki verilere erişmenizi sağlayan analitik bir işlevdir.

İşlev, geçerli satırdan önceki belirli bir ofsette bir satıra erişmenizi sağlar. Örneğin, kurşun işlevini kullanarak, mevcut satırın hemen ardından gelen satırı, mevcut satırdan sonraki 10. satırı vb. bulabilirsiniz.







Bu işlev, veritabanı geliştiricilerini birleştirme, görünümleri kullanma vb. gibi karmaşık görevler olmadan satır karşılaştırmaları yapmaya yönlendirir.



İşlev Sözdizimi

Aşağıda, SQL Server'daki lead() işlevinin söz dizimi gösterilmektedir:



KURŞUN (skalar_ifade [ ,kaydırma ] , [varsayılan] )
OVER ( [ partition_by_clause ] order_by_clause )

Sonraki liste, desteklenen bağımsız değişkenler ve işlevleridir:





  1. scalar_expression – bu bağımsız değişken, tanımlanan ofseti temel alan dönüş değerini belirtir. Bu, tek bir değer döndüren herhangi bir türden bir ifade olabilir. Ancak, skaler_ifadenin değeri başka bir analitik/pencere işlevi olamaz.
  2. ofset – bu değerin geçerli satır konumundan kaç satır getirileceğini ayarlar. Varsayılan olarak, işlev, geçerli satıra sıfat olan satırı hemen getirecektir. Benzer şekilde, ofset parametresinin değeri analitik bir fonksiyon veya negatif bir tamsayı olamaz.
  3. varsayılan – sağlanan ofset değeri hedef bölümün kapsamı dışındaysa bu parametre varsayılan değeri ayarlar. Varsayılan olarak, işlev NULL döndürür.
  4. PARTITION BY – partition_by deyimi, sonuç kümesini çeşitli bölümlere ayıran kuralları tanımlar. İşlev daha sonra ortaya çıkan her bölüme uygulanır.
  5. ORDER BY – bu, her bölümdeki satırların uygulandığı mantıksal sırayı tanımlar.

İşlev, scalar_expression'da tanımlanan veri türünü döndürür. Döndürülen değer NULL ise, işlev NULL değerini döndürür.

Örnek veri

Lead işlevinin nasıl kullanılacağını en iyi şekilde göstermek için bazı örnek veritabanlarını kullanalım. İlk olarak, sorguları aşağıda gösterildiği gibi kullanın:



VARSA VERİTABANI envanterini DÜŞÜRÜN;

VERİTABANI envanteri OLUŞTURUN;

Envanteri KULLANIN;

VARSA DROP TABLOSU ürünleri;

TABLO OLUŞTUR ürünleri (
id int kimlik birincil anahtarı boş değil,
ürün_adı varchar(100),
üretici varchar(50),
miktar int boş değil,
fiyat int varsayılan 0,
stok biti
);
ürünlere ekleyin(ürün_adı, üretici, miktar, fiyat, stokta)
değerler ('Apple iPad Air', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony',  500, 499,99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro', 'Apple', 200, 199.99, 1),
('55' Sınıf S95B OLED 4K Akıllı TV', 'Samsung', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Kavisli Oyun Ekranı', 'Samsung', 50, 2999.90, 1);

Ortaya çıkan tablo gösterildiği gibidir:

Örnek 1 – Bir Sonuç Kümesi Üzerinden SQL Server lead() İşlevini Kullanma

Aşağıdaki örnek, bir sonraki ürünün fiyatını döndürmek için lead() işlevini kullanır.

seçme
Ürün adı,
üretici firma,
miktar,
fiyat,
kurşun(fiyat,
1) üzerinde (
miktara göre sipariş)
itibaren
Ürün:% s;

Sonuç tablosu:

Son sütundan satır olmadığı için işlev NULL döndürür.

Örnek 2 – Bir Bölüm Kümesi Üzerinden SQL Server lead() İşlevini Kullanma

Belirli bir bölümdeki bir sonraki ürünü de getirebiliriz. Örneğin, yukarıdaki verileri üreticiye göre bölümlere ayırabilir ve her bölüme lead() işlevini uygulayabiliriz.

Örnek bir çizim gösterildiği gibidir:

seçme
Ürün adı,
üretici firma,
miktar,
fiyat,
kurşun(fiyat,
1) üzerinde (
üreticiye göre ayırma
miktara göre sipariş)
itibaren
Ürün:% s;

Yukarıdaki sorgu, satırları üreticiye göre bölmeli ve her bölümdeki değerler için bir sonraki fiyatı getirmelidir.

Bu durumda, üç bölüm vardır.

Çözüm

Bu gönderide, SQL Server'da lead() işlevinin yapı taşlarını anladınız. Ayrıca bir sonuç ve bölüm kümesi üzerinden lead() işlevinin nasıl kullanılacağını da öğrendiniz.