SQL Lead Function

Sql Lead Function



SQL lead()-funktion avulla voit käyttää seuraavaa riviä nykyisestä rivistä tietyllä siirtymällä. Lyhyesti sanottuna lead()-funktio mahdollistaa pääsyn seuraavalle riville nykyisestä rivistä. Määrittämällä offset-arvon pääset seuraaville 1, 2, 3 jne. riville nykyisestä rivistä.

Se on vastakohta lag()-funktiolle, jonka avulla voit käyttää edellisiä rivejä.







SQL Lead() -funktio

Funktioiden syntaksi on seuraava:



LEAD(arvon_lauseke, offset [, oletus])
OVER (
[OSIO OSIO-lausekkeen mukaan]
ORDER BY sort_expression [ASC | DESC]
);

Seuraavat ovat tuetut argumentit:



  1. arvo_lauseke – Se määrittää edellisen rivin palautusarvon. Lausekkeen on arvioitava yksi arvo.
  2. offset – Se määrittää, kuinka monta riviä eteenpäin nykyisestä rivistä päästään käsiksi.
  3. oletuksena – Se asettaa oletusarvon, jos siirtymä ei kuulu osion piiriin. Oletuksena arvo on NULL.
  4. Osio tekijä – Se määrittää, kuinka tiedot osioidaan.
  5. Tilaa mukaan – Se määrittää kunkin osion rivien järjestysmuodon.

Esimerkkitietojen määritys

Ennen kuin sukeltaamme lead()-funktion toimintaan, aloitetaan asettamalla perustaulukko esittelytarkoituksiin.





CREATE TABLE tuotteet (
product_id INT PRIMARY KEY AUTO_INCREMENT,
tuotteen_nimi VARCHAR(255),
luokka VARCHAR(255),
hinta DECIMAL(10, 2),
määrä INT,
expiration_date DATE,
viivakoodi BIGINT
);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Chef Hat 25cm',
'leipomo',
24.67,
57,
'2023-09-09',
2854509564204);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('viiriäisten munat - purkitettu',
'ruokakomero',
17.99,
67,
'2023-09-29',
1708039594250);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Kahvi - Egg Nog Capuccino',
'leipomo',
92,53,
10,
'2023-09-22',
8704051853058);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Pear - Prickly',
'leipomo',
65,29,
48,
'2023-08-23',
5174927442238);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Pasta - Angel Hair',
'ruokakomero',
48,38,
59,
'2023-08-05',
8008123704782);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Viini - Prosecco Valdobiaddene',
'tuottaa',
44.18,
3,
'2023-03-13',
6470981735653);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Leivonnaiset - ranskalainen minivalikoima',
'ruokakomero',
36,73,
52,
'2023-05-29',
5963886298051);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('oranssi - purkitettu, mandariini',
'tuottaa',
65,0,
1,
'2023-04-20',
6131761721332);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)
arvot ('Sianliha - lapa',
'tuottaa',
55.55,
73,
'2023-05-01',
9343592107125);

lisää
sisään
tuotteet (tuotteen_nimi,
kategoria,
hinta,
määrä,
viimeinen käyttöpäivä,
viivakoodi)

arvot ('Dc Hikiage Hira Huba',
'tuottaa',
56.29,
53,
'2023-04-14',
3354910667072);

Esimerkki 1:

Tässä tapauksessa meillä on pääsy 'tuotteet' -taulukkoon, joka sisältää tuotetiedot. Oletetaan, että haluamme saada seuraavan viivakoodin nykyiseltä riviltä.

Voimme käyttää lead()-funktiota seuraavasti:



Oletetaan, että meillä on taulukko, joka sisältää työntekijätiedot seuraavasti:

valitse
tuotteen nimi,
hinta,
johtaa (viivakoodi) yli (osio luokan mukaan
tilata mennessä
hinta nouseva) seuraavana_kohteena
alkaen
tuotteet p;

Annettu koodi osittaa tiedot luokan perusteella. Sitten se hakee osion seuraavan viivakoodin lead()-funktiolla.

Tuloksena oleva tulos on seuraava:

Esimerkki 2:

Jos tietyssä sarakkeessa ei ole seuraavaa riviä (rajoituksen ulkopuolella), funktio asettaa arvoksi NULL kuten edellisessä esimerkissä.

Voit määrittää oletusarvon kaikelle soveltamisalan ulkopuoliselle käytölle seuraavasti:

valitse
tuotteen nimi,
hinta,
johda (viivakoodi, 1, 'N/A') yli (osio kategorian mukaan
tilata mennessä
hinta nouseva) seuraavana_kohteena
alkaen
tuotteet p;

Asetamme oletusarvoksi 'N/A'. Tämän pitäisi korvata kaikki ulkopuoliset arvot seuraavan tulosteen mukaisesti:

HUOMAUTUS : Offsetin asettaminen arvoon 1 on samanlaista kuin minkään arvon määrittämättä jättäminen.

Esimerkki 3:

Oletetaan, että haluat käyttää kahta seuraavaa riviä nykyiseltä riviltä. Voimme tehdä sen asettamalla offset-arvoksi 2.

Esimerkki kyselystä on kuvattu seuraavassa:

valitse
tuotteen nimi,
hinta,
johtaa (viivakoodi, 2, 'N/A') yli (osio luokan mukaan
tilata mennessä
hinta nouseva) seuraavana_kohteena
alkaen
tuotteet p;

Tämä kysely palauttaa kunkin osion kaksi seuraavaa riviä seuraavassa esitetyllä tavalla:

Siinä se on!

Johtopäätös

Tässä opetusohjelmassa opimme käyttämään lead()-funktiota saadakseen seuraavan kohteen nykyiseltä riviltä.