SQL vedimo funkcija

Sql Vedimo Funkcija



Funkcija SQL lead() leidžia pasiekti kitą eilutę iš dabartinės eilutės tam tikru poslinkiu. Trumpai tariant, funkcija lead() leidžia pasiekti kitą eilutę iš dabartinės. Nurodę poslinkio reikšmę, galite pasiekti kitas 1, 2, 3 ir tt eilutes iš dabartinės.

Tai priešinga funkcijai lag(), kuri leidžia pasiekti ankstesnes eilutes.







SQL Lead() funkcija

Funkcijos sintaksė yra tokia:



LEAD(vertės_raiška, poslinkis [, numatytasis])
PABAIGTA (
[Skirstymas pagal skaidinio_reiškinį]
ORDER BY sort_expression [ASC | DESC]
);

Toliau pateikiami palaikomi argumentai:



  1. vertės_raiška – Nurodo ankstesnės eilutės grąžinimo vertę. Išraiška turi būti įvertinta iki vienos reikšmės.
  2. kompensuoti – Nurodoma, kiek eilučių į priekį nuo dabartinės eilutės reikia pasiekti.
  3. numatytas – Ji nustato numatytąją reikšmę, jei poslinkis nepatenka į skaidinio sritį. Pagal numatytuosius nustatymus reikšmė nustatyta į NULL.
  4. Skirstymas pagal – Nurodoma, kaip suskirstyti duomenis.
  5. Rūšiuoti pagal – Nustatomas kiekvieno skaidinio eilučių užsakymo formatas.

Duomenų sąrankos pavyzdys

Prieš pasinerdami į funkcijos lead() veikimą, pradėkime nuo pagrindinės lentelės nustatymo demonstravimo tikslais.





CREATE TABLE produktus (
product_id INT PRIMARY KEY AUTO_INCREMENT,
produkto_pavadinimas VARCHAR(255),
kategorija VARCHAR(255),
kaina DECIMAL (10, 2),
kiekis INT,
expiration_date DATE,
brūkšninis kodas BIGINT
);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės („Chef Hat 25cm“,
'kepykla',
24.67,
57,
„2023-09-09“,
2854509564204);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės („Pupelių kiaušiniai – konservuoti“,
'sandėliukas',
17.99,
67,
„2023-09-29“,
1708039594250);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės ('Kava - Kiaušinis Nog Capuccino',
'kepykla',
92,53,
10,
„2023-09-22“,
8704051853058);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės („Kriaušė – dygliuotas“,
'kepykla',
65.29,
48,
„2023-08-23“,
5174927442238);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertybės („Makaronai – angelo plaukai“,
'sandėliukas',
48.38,
59,
„2023-08-05“,
8008123704782);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertybės („Vynas – Prosecco Valdobiaddene“,
'gaminti',
44.18,
3,
„2023-03-13“,
6470981735653);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės („Tešlos pyragas – prancūziškas mini asorti“,
'sandėliukas',
36,73,
52,
„2023-05-29“,
5963886298051);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės („oranžinė – konservuota, mandarinų“,
'gaminti',
65,0,
1,
„2023-04-20“,
6131761721332);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)
vertės („Kiauliena – mentė“,
'gaminti',
55.55,
73,
„2023-05-01“,
9343592107125);

Įdėti
į
produktai (produkto pavadinimas,
Kategorija,
kaina,
kiekis,
galiojimo laikas,
brūkšninis kodas)

vertybės („Dc Hikiage Hira Huba“,
'gaminti',
56.29,
53,
„2023-04-14“,
3354910667072);

1 pavyzdys:

Tokiu atveju turime prieigą prie „produktų“ lentelės, kurioje yra produkto informacija. Tarkime, kad norime gauti kitą brūkšninį kodą iš dabartinės eilutės.

Funkciją lead () galime naudoti taip:



Tarkime, kad turime lentelę, kurioje yra tokia informacija apie darbuotoją:

pasirinkite
produkto pavadinimas,
kaina,
švino (brūkšninis kodas) virš (skirstymas pagal kategoriją
Rūšiuoti pagal
kaina didėja) kaip next_item

produktai p;

Pateiktas kodas skirsto duomenis pagal kategoriją. Tada jis gauna kitą brūkšninį kodą skaidinyje, naudodamas funkciją lead().

Gauta išvestis yra tokia:

2 pavyzdys:

Jei konkrečiame stulpelyje nėra kitos eilutės (ne apribota), funkcija nustato reikšmę į NULL, kaip parodyta ankstesniame pavyzdyje.

Norėdami nustatyti numatytąją bet kokios ne aprėpties prieigos reikšmę, galime atlikti šiuos veiksmus:

pasirinkite
produkto pavadinimas,
kaina,
švino (brūkšninis kodas, 1, 'N/A') virš (skirstymas pagal kategoriją
Rūšiuoti pagal
kaina didėja) kaip next_item

produktai p;

Nustatome numatytąją reikšmę „N/A“. Tai turėtų pakeisti bet kokią užribinę vertę, kaip parodyta šioje išvestyje:

PASTABA : poslinkio nustatymas į 1 panašus į jokios reikšmės nenurodymą.

3 pavyzdys:

Tarkime, kad norite pasiekti kitas dvi eilutes iš dabartinės eilutės. Tai galime padaryti nustatydami poslinkio reikšmę į 2.

Užklausos pavyzdys parodytas toliau:

pasirinkite
produkto pavadinimas,
kaina,
švino (brūkšninis kodas, 2, 'N/A') virš (skirstymas pagal kategoriją
Rūšiuoti pagal
kaina didėja) kaip next_item

produktai p;

Ši užklausa kiekviename skaidinyje pateikia kitas dvi eilutes, kaip parodyta toliau:

Štai jūs tai turite!

Išvada

Šioje pamokoje sužinojome, kaip dirbti su lead() funkcija, kad gautume kitą elementą iš dabartinės eilutės.