SQL Server LEAD() függvény

Sql Server Lead Fuggveny



Ebben a cikkben végigvezetjük az SQL Server lead() függvényének használatának alapjain. Kitérünk a függvény működésére, szintaxisára, valamint gyakorlati példákra a használatára.

SQL Server vezető funkció

Az SQL Server vezető funkciója egy elemző funkció, amely lehetővé teszi, hogy öncsatlakozás nélkül hozzáférjen egy következő sor adataihoz ugyanazon eredményhalmazban.

A funkció lehetővé teszi, hogy hozzáférjen egy sorhoz, amely az aktuális sort megelőző adott eltolásban van. Például a lead függvény segítségével megtalálhatja a sort közvetlenül az aktuális sor után, a 10. sort az aktuális sorból stb.







Ez a funkció arra készteti az adatbázis-fejlesztőket, hogy sor-összehasonlításokat hajtsanak végre olyan bonyolult feladatok nélkül, mint az összekapcsolás, nézetek használata stb.



Függvény szintaxis

Az alábbiakban bemutatjuk a lead() függvény szintaxisát az SQL Serverben:



LEAD (skaláris_kifejezés [,eltolás], [alapértelmezett])
OVER ( [ partíció záradékonként ] záradék szerinti sorrend )

A következő lista a támogatott argumentumokat és azok funkcióit tartalmazza:





  1. skalár_kifejezés – ez az argumentum a megadott eltoláson alapuló visszatérési értéket jelöli. Ez bármilyen típusú kifejezés lehet, amely egyetlen értéket ad vissza. A skaláris_kifejezés értéke azonban nem lehet másik elemző/ablakfüggvény.
  2. offset – ez azt állítja be, hogy az aktuális sorpozícióból hány sorral legyen leolvasva az érték. Alapértelmezés szerint a függvény azonnal lekéri a sort az aktuális sorhoz tartozó melléknevet. Hasonlóképpen, az offset paraméter értéke nem lehet analitikus függvény vagy negatív egész szám.
  3. alapértelmezett – ez a paraméter beállítja az alapértelmezett értéket, ha a megadott eltolási érték kívül esik a célpartíció hatókörén. Alapértelmezés szerint a függvény NULL értéket ad vissza.
  4. PARTITION BY – a partition_by záradék határozza meg azokat a szabályokat, amelyek az eredményhalmazt különböző szakaszokra osztják. A függvény ezután minden eredményül kapott partícióra vonatkozik.
  5. ORDER BY – ez határozza meg az egyes partíciókban lévő sorok alkalmazásának logikai sorrendjét.

A függvény a skalár_kifejezésben meghatározott adattípust adja vissza. Ha a visszaadott érték NULL, a függvény NULL-t ad vissza.

Minta adat

Használjunk néhány mintaadatbázist a lead függvény használatának legjobb szemléltetésére. Először is használja a lekérdezéseket az alábbiak szerint:



HAJTJA EL AZ ADATBÁZISOT, HA LÉTEZIK készlet;

ADATBÁZIS-leltár LÉTREHOZÁSA;

HASZNÁLJA a készletet;

HAJTJA EL ASZTALT, HA LÉTEZIK termékek;

CREATE TABLE termékek (
id int identitás elsődleges kulcsa nem null,
termék_neve varchar(100),
gyártó varchar(50),
mennyiség int nem nulla,
ár alapértelmezett 0,
in_stock bit
);
beillesztés a termékekbe (terméknév, gyártó, mennyiség, ár, raktáron)
értékek ('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' Class S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1),
(„Odyssey Ark Quantum Mini-LED ívelt játékképernyő”, „Samsung”, 50, 2999.90, 1);

Az eredményül kapott táblázat a következő:

1. példa – Az SQL Server lead() függvény használata egy eredményhalmaz felett

Az alábbi példa a lead() függvényt használja a következő termék árának visszaadására.

válassza ki
termék név,
gyártó,
Mennyiség,
ár,
ólom (ár,
1) vége (
mennyiség szerinti rendelés)
tól től
Termékek;

Eredmény táblázat:

Mivel az utolsó oszlopból nincs sor, a függvény NULL-t ad vissza.

2. példa – Az SQL Server lead() függvény használata partíciókészleten keresztül

A következő terméket is lekérhetjük egy adott partícióban. Például a fenti adatokat a gyártó alapján particionálhatjuk, és minden partícióban alkalmazhatjuk a lead() függvényt

Egy példa illusztráció:

válassza ki
termék név,
gyártó,
Mennyiség,
ár,
ólom (ár,
1) vége (
partíció gyártó szerint
mennyiség szerinti rendelés)
tól től
Termékek;

A fenti lekérdezésnek fel kell osztania a sorokat a gyártó alapján, és le kell kérnie az egyes partíciók értékeinek következő árát.

Ebben az esetben három partíció van.

Következtetés

Ebben a bejegyzésben megértette az SQL Server lead() függvényének építőköveit. Azt is megtanulta, hogyan kell használni a lead() függvényt egy eredmény- és partíciókészlet felett.