SQL vezető funkció

Sql Vezeto Funkcio



Az SQL lead() függvény lehetővé teszi az aktuális sor következő sorának elérését egy adott eltolásnál. Röviden, a lead() függvény lehetővé teszi a következő sor elérését az aktuális sorból. Az eltolás értékének megadásával az aktuális sorból érheti el a következő 1, 2, 3 stb. sorokat.

Ellentéte a lag() függvénynek, amely lehetővé teszi az előző sorok elérését.







SQL Lead() függvény

A függvény szintaxisa a következő:



LEAD(érték_kifejezés, eltolás [, alapértelmezett])
VÉGE (
[PARTÍCIÓ SZERINT partíciókifejezés]
ORDER BY rendezési_kifejezés [ASC | DESC]
);

A támogatott érvek a következők:



  1. érték_kifejezés – Megadja az előző sor visszatérési értékét. A kifejezést egyetlen értékre kell kiértékelni.
  2. beszámítás – Meghatározza, hogy az aktuális sortól előre hány sort kell elérni.
  3. alapértelmezett – Beállítja az alapértelmezett értéket, ha az eltolás kívül esik a partíció hatókörén. Alapértelmezés szerint az érték NULL.
  4. Partíció szerint – Meghatározza az adatok particionálásának módját.
  5. Rendezés – Az egyes partíciókban beállítja a sorok sorrendjének formátumát.

Minta adatbeállítás

Mielőtt belemerülnénk a lead() függvény működésébe, kezdjük az alaptáblázat bemutatásával.





CREATE TABLE termékek (
product_id INT ELSŐDLEGES KULCS AUTO_INCREMENT,
termék_neve VARCHAR(255),
VARCHAR kategória(255),
ár DECIMAL(10, 2),
mennyiség INT,
expiration_date DATE,
vonalkód BIGINT
);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('Séf kalap 25 cm',
'pékség',
24.67,
57,
'2023-09-09',
2854509564204);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('Fürjtojás – Konzerv),
'éléskamra',
17,99,
67,
'2023-09-29',
1708039594250);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('Coffee - Egg Nog Capuccino',
'pékség',
92,53,
10,
'2023-09-22',
8704051853058);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('Körte - Tüskés',
'pékség',
65,29,
48,
'2023-08-23',
5174927442238);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('tészta - angyalhaj',
'éléskamra',
48.38,
59,
'2023-08-05',
8008123704782);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('Bor - Prosecco Valdobiaddene',
'termelni',
44.18,
3,
'2023-03-13',
6470981735653);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékeket ('Püstök - French Mini Asorted',
'éléskamra',
36,73,
52,
'2023-05-29',
5963886298051);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('narancs - konzerv, mandarin',
'termelni',
65,0,
1,
'2023-04-20',
6131761721332);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)
értékek ('sertés - lapocka',
'termelni',
55,55,
73,
'2023-05-01',
9343592107125);

betét
-ba
termékek (terméknév,
kategória,
ár,
Mennyiség,
lejárati dátum,
vonalkód)

értékek ('Dc Hikiage Hira Huba',
'termelni',
56.29,
53,
'2023-04-14',
3354910667072);

1. példa:

Ebben az esetben hozzáférünk a „termékek” táblázathoz, amely a termékinformációkat tartalmazza. Tegyük fel, hogy a következő vonalkódot szeretnénk lekérni az aktuális sorból.

A lead() függvényt a következőképpen használhatjuk:



Tegyük fel, hogy van egy táblázatunk, amely a következő munkavállalói információkat tartalmazza:

válassza ki
termék név,
ár,
lead(vonalkód) over (partíció kategória szerint
Rendezés
ár asc) következő_elemként
tól től
termékek p;

Az adott kód kategória alapján particionálja az adatokat. Ezután lekéri a partíció következő vonalkódját a lead() függvény segítségével.

A kapott kimenet a következő:

2. példa:

Ha egy adott oszlopban nincs következő sor (határon kívül), a függvény az értéket NULL-ra állítja, az előző példában látható módon.

A hatókörön kívüli hozzáférés alapértelmezett értékének beállításához a következőket tehetjük:

válassza ki
termék név,
ár,
lead(vonalkód, 1, 'N/A') over (partíció kategória szerint
Rendezés
ár asc) következő_elemként
tól től
termékek p;

Az alapértelmezett értéket „N/A”-ra állítottuk. Ennek ki kell cserélnie minden határon kívüli értéket, ahogy az a következő kimenetben látható:

JEGYZET : Az eltolás 1-re állítása hasonló az érték megadásának mellőzéséhez.

3. példa:

Tegyük fel, hogy az aktuális sorból szeretne elérni a következő két sort. Ezt úgy tehetjük meg, hogy az eltolás értékét 2-re állítjuk.

Egy példa lekérdezést szemléltet a következő:

válassza ki
termék név,
ár,
lead(vonalkód, 2, 'N/A') over (partíció kategória szerint
Rendezés
ár asc) következő_elemként
tól től
termékek p;

Ez a lekérdezés a következő két sort adja vissza az egyes partíciókban, ahogy az az alábbiakban látható:

Tessék, itt van!

Következtetés

Ebben az oktatóanyagban megtanultuk, hogyan kell a lead() függvénnyel dolgozni az aktuális sor következő elemének beszerzéséhez.