SQL Server LEAD() -funktio

Sql Server Lead Funktio



Tässä artikkelissa opastamme sinut SQL Serverin lead()-funktion käytön perusteiden läpi. Käymme läpi mitä funktio tekee, sen syntaksia ja käytännön esimerkkejä sen käytöstä.

SQL Server Lead Function

SQL Serverin johtofunktio on analyyttinen toiminto, jonka avulla voit käyttää tietoja myöhemmältä riviltä samassa tulosjoukossa ilman itseliittämistä.

Toiminnon avulla voit käyttää riviä annetulla siirtymällä nykyistä riviä edeltävällä tavalla. Esimerkiksi johtofunktiota käyttämällä voit löytää rivin heti nykyisen rivin jälkeen, 10. rivin nykyisestä rivistä jne.







Tämä toiminto saa tietokantakehittäjät suorittamaan rivivertailuja ilman monimutkaisia ​​tehtäviä, kuten liittymistä, näkymien käyttöä jne.



Funktion syntaksi

Seuraava kuvaa lead()-funktion syntaksia SQL Serverissä:



LYHY (skalaarilauseke [ ,offset ], [oletus])
YLI ( [ osio_lauseittain ] järjestys lauseittain )

Seuraava luettelo on tuetut argumentit ja niiden toiminnallisuus:





  1. skalaarilauseke – tämä argumentti ilmaisee palautusarvon määritettyyn siirtymään perustuen. Tämä voi olla minkä tahansa tyyppinen lauseke, joka palauttaa yhden arvon. Skalaarilausekkeen arvo ei kuitenkaan voi olla toinen analyyttinen/ikkunafunktio.
  2. offset – tämä määrittää, kuinka monta riviä nykyisestä rivipaikasta arvo haetaan. Oletusarvoisesti funktio hakee rivin adjektiivin välittömästi nykyiselle riville. Vastaavasti offset-parametrin arvo ei voi olla analyyttinen funktio tai negatiivinen kokonaisluku.
  3. oletus – tämä parametri asettaa oletusarvon, jos annettu offset-arvo ei kuulu kohdeosion soveltamisalaan. Oletusarvoisesti funktio palauttaa NULL-arvon.
  4. PARTITION BY – partition_by-lause määrittää säännöt, jotka jakavat tulosjoukon eri osiin. Toimintoa sovelletaan sitten jokaiseen tuloksena olevaan osioon.
  5. ORDER BY – tämä määrittää loogisen järjestyksen, jossa kunkin osion rivejä käytetään.

Funktio palauttaa skalaarilausekkeessa määritellyn tietotyypin. Jos palautettu arvo on NULL, funktio palauttaa NULL-arvon.

Esimerkkitiedot

Havainnollistetaan parhaalla mahdollisella tavalla liidifunktion käyttöä esimerkkitietokannassa. Käytä ensin kyselyitä alla kuvatulla tavalla:



PUDOTA TIETOKANTA, JOS ON ON varasto;

LUO TIETOKAnnan inventaario;

KÄYTÄ luetteloa;

PUDOTA PÖYTÄ JOS ON tuotteita;

CREATE TABLE tuotteet (
id int identiteetti ensisijainen avain ei tyhjä,
tuotteen_nimi varchar(100),
valmistaja varchar(50),
määrä int ei nolla,
oletushinta 0,
in_stock bit
);
lisää tuotteisiin (tuotteen_nimi, valmistaja, määrä, hinta, varastossa oleva)
arvot ('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 Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

Tuloksena oleva taulukko on seuraavanlainen:

Esimerkki 1 – SQL Server lead()-funktion käyttäminen tulosjoukon yli

Alla olevassa esimerkissä käytetään lead()-funktiota seuraavan tuotteen hinnan palauttamiseen.

valitse
tuotteen nimi,
valmistaja,
määrä,
hinta,
lyijy (hinta,
1) yli (
tilaus määrän mukaan)
alkaen
Tuotteet;

Tuloksena oleva taulukko:

Koska viimeisestä sarakkeesta ei ole riviä, funktio palauttaa NULL-arvon.

Esimerkki 2 – SQL Server lead()-funktion käyttäminen osiojoukon yli

Voimme myös noutaa seuraavan tuotteen annetusta osiosta. Voimme esimerkiksi osioida yllä olevat tiedot valmistajan perusteella ja käyttää lead()-funktiota jokaisessa osiossa

Esimerkkikuva on seuraavanlainen:

valitse
tuotteen nimi,
valmistaja,
määrä,
hinta,
lyijy (hinta,
1) yli (
osio valmistajan mukaan
tilaus määrän mukaan)
alkaen
Tuotteet;

Yllä olevan kyselyn pitäisi jakaa rivit valmistajan perusteella ja hakea kunkin osion arvoille seuraava hinta.

Tässä tapauksessa on kolme osiota.

Johtopäätös

Tässä viestissä ymmärsit lead()-funktion rakennuspalikoita SQL Serverissä. Opit myös käyttämään lead()-funktiota tulos- ja osiojoukossa.