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:
- 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.
- 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.
- 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.
- 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.
- 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 kitermé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 kitermé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.