SQL Lead-functie

Sql Lead Functie



Met de functie SQL lead() kunt u met een specifieke offset toegang krijgen tot de volgende rij vanaf de huidige rij. Kort gezegd geeft de functie lead() u toegang tot de volgende rij vanaf de huidige. Door de offsetwaarde op te geven, heeft u toegang tot de volgende 1, 2, 3, enz. rijen vanaf de huidige.

Het is het tegenovergestelde van de lag()-functie waarmee u toegang krijgt tot de vorige rijen.







SQL Lead()-functie

De syntaxis van de functie is als volgt:



LEAD(waarde_expressie, verschuiving [, standaard])
OVER (
[PARTITIE DOOR partitie_expressie]
BESTEL OP sort_expression [ASC | BESCHRIJVING]
);

Dit zijn de ondersteunde argumenten:



  1. waarde_expressie – Het specificeert de retourwaarde van de voorgaande rij. De expressie moet resulteren in één enkele waarde.
  2. gecompenseerd – Het specificeert hoeveel rijen vooruit vanaf de huidige rij toegankelijk zijn.
  3. standaard – Het stelt de standaardwaarde in als de offset buiten het bereik van de partitie valt. Standaard is de waarde ingesteld op NULL.
  4. Partitie door – Het specificeert hoe de gegevens moeten worden gepartitioneerd.
  5. Bestel per – Het stelt het orderformaat in voor de rijen in elke partitie.

Voorbeeldgegevens instellen

Voordat we ingaan op de werking van de lead()-functie, gaan we eerst de basistabel opzetten voor demonstratiedoeleinden.





MAAK TAFEL producten (
product_id INT PRIMAIRE SLEUTEL AUTO_INCREMENT,
productnaam VARCHAR(255),
categorie VARCHAR(255),
prijs DECIMAAL(10, 2),
hoeveelheid INT,
vervaldatum DATUM,
streepjescode BIGINT
);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Koksmuts 25cm',
'bakkerij',
24.67,
57,
'09-09-2023',
2854509564204);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Kwarteleitjes - ingeblikt',
'voorraadkast',
17.99,
67,
'29-09-2023',
1708039594250);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Koffie - Egg Nog Capuccino',
'bakkerij',
92.53,
10,
'22-09-2023',
8704051853058);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Peer - Stekelig',
'bakkerij',
65.29,
48,
'23-08-2023',
5174927442238);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Pasta - Engelenhaar',
'voorraadkast',
48.38,
59,
'2023-08-05',
8008123704782);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden('Wijn - Prosecco Valdobiaddene',
'produceren',
44.18,
3,
'2023-03-13',
6470981735653);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Gebak - Frans Mini Assortiment',
'voorraadkast',
36.73,
52,
'29-05-2023',
5963886298051);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Oranje - Ingeblikt, Mandarijn',
'produceren',
65,0,
1,
'20-04-2023',
6131761721332);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)
waarden ('Varkensvlees - Schouder',
'produceren',
55,55,
73,
'2023-05-01',
9343592107125);

invoegen
naar binnen
producten (productnaam,
categorie,
prijs,
hoeveelheid,
uiterste houdbaarheidsdatum,
streepjescode)

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

Voorbeeld 1:

In dit geval hebben we toegang tot de tabel “producten” die de productinformatie bevat. Stel dat we de volgende streepjescode uit de huidige rij willen ophalen.

We kunnen de functie lead() als volgt gebruiken:



Stel dat we een tabel hebben die de volgende werknemersinformatie bevat:

selecteren
productnaam,
prijs,
lead(barcode) over (partitie op categorie
bestel door
prijs oplopend) als volgend_item
van
producten p;

De gegeven code verdeelt de gegevens op basis van de categorie. Vervolgens haalt het de volgende streepjescode in de partitie op met behulp van de functie lead().

De resulterende uitvoer is als volgt:

Voorbeeld 2:

Als er geen volgende rij in een specifieke kolom is (buiten bereik), stelt de functie de waarde in op NULL, zoals weergegeven in het vorige voorbeeld.

Om een ​​standaardwaarde in te stellen voor toegang die buiten het bereik valt, kunnen we het volgende doen:

selecteren
productnaam,
prijs,
lead(barcode, 1, 'N.v.t.') over (partitie op categorie
bestel door
prijs oplopend) als volgend_item
van
producten p;

We hebben de standaardwaarde ingesteld op “N.v.t.”. Dit zou elke buitengrenswaarde moeten vervangen, zoals weergegeven in de volgende uitvoer:

OPMERKING : De offset instellen op 1 is vergelijkbaar met het niet opgeven van een waarde.

Voorbeeld 3:

Stel dat u toegang wilt krijgen tot de volgende twee rijen van de huidige rij. We kunnen dat doen door de offsetwaarde in te stellen op 2.

Een voorbeeldquery wordt hieronder geïllustreerd:

selecteren
productnaam,
prijs,
lead(barcode, 2, 'N.v.t.') over (partitie op categorie
bestel door
prijs oplopend) als volgend_item
van
producten p;

Deze query retourneert de volgende twee rijen in elke partitie, zoals hieronder wordt weergegeven:

Daar heb je het!

Conclusie

In deze tutorial hebben we geleerd hoe we met de functie lead() kunnen werken om het volgende item uit de huidige rij te halen.