Funkcija SQL Lead

Funkcija Sql Lead



Funkcija SQL lead() vam omogoča dostop do naslednje vrstice iz trenutne vrstice pri določenem odmiku. Skratka, funkcija lead() vam omogoča dostop do naslednje vrstice iz trenutne. Če določite vrednost odmika, lahko dostopate do naslednjih 1, 2, 3 itd. vrstic iz trenutne.

Je nasprotje funkcije lag(), ki vam omogoča dostop do prejšnjih vrstic.







Funkcija SQL Lead().

Sintaksa funkcije je naslednja:



LEAD(izraz_vrednosti, odmik [, privzeto])
NAD (
[PARTICIJA PO particijskem_izrazu]
UREDI PO izrazu_razvrščanja [ASC | DESC]
);

Podprti argumenti so naslednji:



  1. vrednostni_izraz – Podaja vrnjeno vrednost prejšnje vrstice. Izraz mora imeti eno vrednost.
  2. odmik – Določa, koliko vrstic naprej od trenutne vrstice do dostopa.
  3. privzeto – Nastavi privzeto vrednost, če je odmik zunaj obsega particije. Privzeto je vrednost nastavljena na NULL.
  4. Razdelitev po – Določa, kako razdeliti podatke.
  5. Naroči po – Nastavi obliko vrstnega reda za vrstice v vsaki particiji.

Vzorčna nastavitev podatkov

Preden se poglobimo v delovanje funkcije lead(), začnimo z nastavitvijo osnovne tabele za namene predstavitve.





CREATE TABLE izdelki (
product_id INT PRIMARY KEY AUTO_INCREMENT,
ime_izdelka VARCHAR(255),
kategorija VARCHAR(255),
cena DECIMAL(10, 2),
količina INT,
datum_izteka DATE,
črtna koda BIGINT
);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Kuharska kapa 25 cm',
'pekarna',
24.67,
57,
'2023-09-09',
2854509564204);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Prepeličja jajca - konzervirana',
'shramba',
17,99,
67,
'29.09.2023',
1708039594250);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Coffee - Egg Nog Capuccino',
'pekarna',
92,53,
10,
'22.9.2023',
8704051853058);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Hruška - Bodeča',
'pekarna',
65,29,
48,
'2023-08-23',
5174927442238);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Pasta - Angel Hair',
'shramba',
48,38,
59,
'2023-08-05',
8008123704782);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Vino - Prosecco Valdobiaddene',
'proizvajati',
44.18,
3,
'13.3.2023',
6470981735653);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Pecivo - francosko mini sortirano',
'shramba',
36,73,
52,
'2023-05-29',
5963886298051);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('pomaranča - konzervirana, mandarina',
'proizvajati',
65,0,
1,
'20.4.2023',
6131761721332);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)
vrednosti ('Svinjina - Pleče',
'proizvajati',
55,55,
73,
'2023-05-01',
9343592107125);

vstavi
v
izdelki (ime_izdelka,
kategorija,
cena,
količina,
Datum veljavnosti,
črtna koda)

vrednosti ('Dc Hikiage Hira Huba',
'proizvajati',
56,29,
53,
'14.4.2023',
3354910667072);

Primer 1:

V tem primeru imamo dostop do tabele »izdelki«, ki vsebuje podatke o izdelku. Recimo, da želimo dobiti naslednjo črtno kodo iz trenutne vrstice.

Funkcijo lead() lahko uporabimo na naslednji način:



Recimo, da imamo tabelo, ki vsebuje podatke o zaposlenem, kot sledi:

izberite
ime izdelka,
cena,
vodi (črtna koda) nad (razdelitev po kategoriji
naročilo po
cena asc) kot next_item
od
izdelki p;

Podana koda razdeli podatke glede na kategorijo. Nato pridobi naslednjo črtno kodo v particiji s funkcijo lead().

Rezultat je naslednji:

Primer 2:

Če v določenem stolpcu ni naslednje vrstice (izven meja), funkcija nastavi vrednost na NULL, kot je prikazano v prejšnjem primeru.

Če želite nastaviti privzeto vrednost za kateri koli dostop zunaj obsega, lahko naredimo naslednje:

izberite
ime izdelka,
cena,
lead(črtna koda, 1, 'N/A') nad (razdelitev po kategoriji
naročilo po
cena asc) kot next_item
od
izdelki p;

Privzeto vrednost smo nastavili na »N/A«. To bi moralo nadomestiti vse vrednosti izven meja, kot je prikazano v naslednjem izhodu:

OPOMBA : Nastavitev odmika na 1 je podobna temu, da ne podate nobene vrednosti.

Primer 3:

Recimo, da želite iz trenutne vrstice dostopati do naslednjih dveh vrstic. To lahko storimo tako, da vrednost odmika nastavimo na 2.

Primer poizvedbe je prikazan v nadaljevanju:

izberite
ime izdelka,
cena,
lead(črtna koda, 2, 'N/A') nad (razdelitev po kategoriji
naročilo po
cena asc) kot next_item
od
izdelki p;

Ta poizvedba vrne naslednji dve vrstici v vsaki particiji, kot je prikazano v nadaljevanju:

Tukaj imaš!

Zaključek

V tej vadnici smo se naučili delati s funkcijo lead() za pridobitev naslednjega elementa iz trenutne vrstice.