SQL serverio LEAD() funkcija

Sql Serverio Lead Funkcija



Šiame straipsnyje apžvelgsime darbo su lead() funkcija SQL Server pagrindus. Apžvelgsime, ką funkcija atlieka, jos sintaksę ir praktinius jos naudojimo pavyzdžius.

SQL serverio pagrindinė funkcija

„SQL Server“ pagrindinė funkcija yra analitinė funkcija, leidžianti pasiekti duomenis iš kitos to paties rezultatų rinkinio eilutės be savarankiško prisijungimo.

Funkcija leidžia pasiekti eilutę su nurodytu poslinkiu prieš dabartinę eilutę. Pavyzdžiui, naudodami švino funkciją, eilutę galite rasti iškart po dabartinės eilutės, 10-ą eilutę iš dabartinės eilutės ir kt.







Ši funkcija skatina duomenų bazių kūrėjus atlikti eilučių palyginimus be sudėtingų užduočių, tokių kaip prisijungimas, rodinių naudojimas ir pan.



Funkcijos sintaksė

Toliau pateikiama SQL serverio funkcijos lead() sintaksė:



LEAD (skaliarinė išraiška [ , poslinkis ], [ numatytasis ])
OVER ( [ skirsnis_pagal_sąlygą ] tvarka_pagal_sąlygą )

Tolesnis sąrašas yra palaikomi argumentai ir jų funkcijos:





  1. skaliarinė_išraiška – šis argumentas nurodo grąžinamąją vertę, pagrįstą apibrėžtu poslinkiu. Tai gali būti bet kokio tipo išraiška, kuri grąžina vieną reikšmę. Tačiau skaliarinės išraiškos reikšmė negali būti kita analitinė / lango funkcija.
  2. poslinkis – nustatoma, kiek eilučių iš dabartinės eilutės padėties gaunama vertė. Pagal numatytuosius nustatymus funkcija iš karto pateiks eilutės būdvardį į dabartinę eilutę. Panašiai poslinkio parametro reikšmė negali būti analitinė funkcija arba neigiamas sveikasis skaičius.
  3. numatytasis – šis parametras nustato numatytąją reikšmę, jei pateikta poslinkio reikšmė nepatenka į tikslinio skaidinio sritį. Pagal numatytuosius nustatymus funkcija grąžins NULL.
  4. PARTITION BY – sąlyga partition_by apibrėžia taisykles, kurios padalija rezultatų rinkinį į įvairias dalis. Tada funkcija taikoma kiekvienam gautam skaidiniui.
  5. ORDER BY – tai apibrėžia loginę tvarką, kuria taikomos eilutės kiekviename skaidinyje.

Funkcija grąžina duomenų tipą, apibrėžtą skaliarinėje_išreiškime. Jei grąžinama reikšmė yra NULL, funkcija grąžina NULL.

Duomenų pavyzdžiai

Naudokime keletą pavyzdinių duomenų bazių, kad geriausiai parodytume, kaip naudoti pagrindinę funkciją. Pirmiausia naudokite užklausas, kaip parodyta toliau:



PALEISTI DUOMENŲ BAZĘ, JEI YRA inventoriaus;

KURTI DUOMENŲ BAZĖS inventorių;

NAUDOTI inventorių;

NULEISKITE LENTELĮ, JEI YRA produktų;

CREATE TABLE produktus (
id int tapatybės pirminis raktas nėra nulis,
produkto_pavadinimas varchar(100),
gamintojas varchar(50),
kiekis int ne nulis,
kaina pagal nutylėjimą 0,
in_stock bit
);
įterpti į produktus (produkto_pavadinimas, gamintojas, kiekis, kaina, sandėlyje)
vertės („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“ klasės S95B OLED 4K išmanusis televizorius“, „Samsung“, 900, 1999.90, 1),
(„Odyssey Ark Quantum Mini-LED lenktas žaidimų ekranas“, „Samsung“, 50, 2999.90, 1);

Gauta lentelė yra tokia, kaip parodyta:

1 pavyzdys – SQL serverio lead() funkcijos naudojimas per rezultatų rinkinį

Toliau pateiktame pavyzdyje naudojama funkcija lead() kito produkto kainai grąžinti.

pasirinkite
produkto pavadinimas,
gamintojas,
kiekis,
kaina,
švinas (kaina,
1) virš (
užsakymas pagal kiekį)

Produktai;

Rezultatų lentelė:

Kadangi paskutiniame stulpelyje nėra eilutės, funkcija grąžina NULL.

2 pavyzdys – SQL Server Ledo() funkcijos naudojimas per skaidinių rinkinį

Taip pat galime gauti kitą produktą tam tikrame skyriuje. Pavyzdžiui, galime suskirstyti aukščiau pateiktus duomenis pagal gamintoją ir kiekviename skaidinyje taikyti funkciją lead().

Iliustracijos pavyzdys yra toks, kaip parodyta:

pasirinkite
produkto pavadinimas,
gamintojas,
kiekis,
kaina,
švinas (kaina,
1) virš (
skirstymas pagal gamintoją
užsakymas pagal kiekį)

Produktai;

Aukščiau pateikta užklausa turėtų padalyti eilutes pagal gamintoją ir gauti kitą kiekvieno skaidinio verčių kainą.

Šiuo atveju yra trys skirsniai.

Išvada

Šiame įraše supratote pagrindinius SQL serverio funkcijos lead() elementus. Taip pat sužinojote, kaip naudoti lead() funkciją per rezultatą ir skaidinio rinkinį.