Funkcia vedúceho SQL

Funkcia Veduceho Sql



Funkcia SQL lead() vám umožňuje prístup k ďalšiemu riadku z aktuálneho riadka s určitým posunom. Stručne povedané, funkcia lead() vám umožňuje prístup k ďalšiemu riadku z aktuálneho. Zadaním hodnoty posunu získate prístup k ďalším 1, 2, 3 atď. riadkom z aktuálneho.

Je to opak funkcie lag(), ktorá vám umožňuje prístup k predchádzajúcim riadkom.







Funkcia SQL Lead().

Syntax funkcie je nasledovná:



LEAD(výraz_hodnoty; posun [, predvolená hodnota])
NAD (
[PARTITION BY partition_expression]
ORDER BY sort_expression [ASC | DESC]
);

Nasledujú podporované argumenty:



  1. hodnota_výraz – Určuje návratovú hodnotu predchádzajúceho riadku. Výraz sa musí vyhodnotiť ako jedna hodnota.
  2. offset – Určuje, na koľko riadkov vpred od aktuálneho riadka sa má pristupovať.
  3. predvolená – Nastaví predvolenú hodnotu, ak je posun mimo rozsahu oddielu. Štandardne je hodnota nastavená na NULL.
  4. Rozdelenie podľa – Špecifikuje, ako rozdeliť údaje.
  5. Zoradiť podľa – Nastavuje formát poradia pre riadky v každom oddiele.

Nastavenie vzorových údajov

Predtým, ako sa ponoríme do fungovania funkcie lead(), začnime nastavením základnej tabuľky na demonštračné účely.





Produkty CREATE TABLE (
product_id INT PRIMARY KEY AUTO_INCREMENT,
názov_produktu VARCHAR(255),
kategória VARCHAR(255),
cena DECIMAL(10, 2),
množstvo INT,
expiration_date DATE,
čiarový kód BIGINT
);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („Chef Klobúk 25 cm“,
'pekáreň',
24,67,
57,
'2023-09-09',
2854509564204);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („prepeličie vajcia – konzervované“,
'špajza',
17,99,
67,
'2023-09-29',
1708039594250);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („Káva – vaječný likér capuccino“,
'pekáreň',
92,53,
10,
'2023-09-22',
8704051853058);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty ('Hruška - Ostnatý',
'pekáreň',
65,29,
48,
'2023-08-23',
5174927442238);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („cestoviny – anjelské vlasy“,
'špajza',
48,38,
59,
'2023-08-05',
8008123704782);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („Víno – Prosecco Valdobiaddene“,
'produkovať',
44,18,
3,
'2023-03-13',
6470981735653);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty ('Pečivo – francúzske mini rôzne',
'špajza',
36,73,
52,
'2023-05-29',
5963886298051);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („Pomaranč – konzerva, mandarínka“,
'produkovať',
65,0,
1,
'2023-04-20',
6131761721332);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)
hodnoty („bravčové mäso – plec“,
'produkovať',
55,55,
73,
'2023-05-01',
9343592107125);

vložiť
do
produkty (názov_produktu,
kategória,
cena,
množstvo,
dátum spotreby,
čiarový kód)

hodnoty („Dc Hikiage Hira Huba“,
'produkovať',
56,29,
53,
'2023-04-14',
3354910667072);

Príklad 1:

V tomto prípade máme prístup k tabuľke „produkty“, ktorá obsahuje informácie o produkte. Predpokladajme, že chceme získať ďalší čiarový kód z aktuálneho riadku.

Funkciu lead() môžeme použiť takto:



Predpokladajme, že máme tabuľku, ktorá obsahuje nasledujúce informácie o zamestnancovi:

vyberte
Meno Produktu,
cena,
náskok (čiarový kód) nad (rozdelenie podľa kategórie
zoradiť podľa
cena vzostupne) ako ďalšia_položka
od
produkty p;

Daný kód rozdeľuje údaje na základe kategórie. Potom pomocou funkcie lead() získa ďalší čiarový kód v oddiele.

Výsledný výstup je nasledovný:

Príklad 2:

Ak v konkrétnom stĺpci nie je žiadny ďalší riadok (mimo väzby), funkcia nastaví hodnotu na NULL, ako je uvedené v predchádzajúcom príklade.

Ak chcete nastaviť predvolenú hodnotu pre akýkoľvek prístup mimo rozsahu, môžeme urobiť nasledovné:

vyberte
Meno Produktu,
cena,
lead(čiarový kód, 1, 'N/A') cez (rozdelenie podľa kategórie
zoradiť podľa
cena vzostupne) ako ďalšia_položka
od
produkty p;

Predvolenú hodnotu sme nastavili na „N/A“. Toto by malo nahradiť akúkoľvek hodnotu mimo hranice, ako je uvedené v nasledujúcom výstupe:

POZNÁMKA : Nastavenie posunu na 1 je podobné, ako keby ste nezadali žiadnu hodnotu.

Príklad 3:

Predpokladajme, že chcete získať prístup k ďalším dvom riadkom z aktuálneho riadku. Môžeme to urobiť nastavením hodnoty offsetu na 2.

Príklad dotazu je ilustrovaný nasledovne:

vyberte
Meno Produktu,
cena,
lead(čiarový kód, 2, 'N/A') cez (rozdelenie podľa kategórie
zoradiť podľa
cena vzostupne) ako ďalšia_položka
od
produkty p;

Tento dotaz vráti ďalšie dva riadky v každom oddiele, ako je uvedené nižšie:

Tu to máte!

Záver

V tomto návode sme sa naučili pracovať s funkciou lead() na získanie ďalšej položky z aktuálneho riadka.