Funció principal SQL

Funcio Principal Sql



La funció SQL lead() us permet accedir a la fila següent des de la fila actual amb un desplaçament específic. En resum, la funció lead() us permet accedir a la fila següent des de l'actual. Si especifiqueu el valor de compensació, podeu accedir a les següents files 1, 2, 3, etc. de l'actual.

És el contrari de la funció lag() que us permet accedir a les files anteriors.







Funció SQL Lead().

La sintaxi de la funció és la següent:



LEAD(expressió_valor, desplaçament [, predeterminat])
ACABAT (
[PARTICIÓ PER expressió_partició]
ORDENA PER expressió_ordenar [ASC | DESC]
);

Els arguments recolzats són els següents:



  1. expressió_valor – Especifica el valor de retorn de la fila anterior. L'expressió s'ha d'avaluar en un sol valor.
  2. compensació – Especifica quantes files cap endavant des de la fila actual a accedir.
  3. per defecte – Estableix el valor per defecte si el desplaçament està fora de l'abast de la partició. Per defecte, el valor s'estableix en NULL.
  4. Partició per – Especifica com particionar les dades.
  5. Demanat per – Estableix el format d'ordre de les files de cada partició.

Configuració de dades de mostra

Abans de submergir-nos en el funcionament de la funció lead(), comencem configurant la taula bàsica amb finalitats de demostració.





productes CREATE TABLE (
product_id INT PRIMARY KEY AUTO_INCREMENT,
nom_producte VARCHAR(255),
categoria VARCHAR(255),
preu DECIMAL(10, 2),
quantitat INT,
data_caducitat DATE,
codi de barres BIGINT
);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Barret de xef 25 cm',
'fleca',
24.67,
57,
'2023-09-09',
2854509564204);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Ous de guatlla - Enllauna',
'rebost',
17.99,
67,
'2023-09-29',
1708039594250);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Cafè - Capuccino d'ou',
'fleca',
92.53,
10,
'2023-09-22',
8704051853058);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Pera - Espinosa',
'fleca',
65.29,
48,
'2023-08-23',
5174927442238);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Pasta - cabell d'àngel',
'rebost',
48.38,
59,
'2023-08-05',
8008123704782);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Vi - Prosecco Valdobiaddene',
'produir',
44.18,
3,
'2023-03-13',
6470981735653);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Pastiseria - Assortit mini francès',
'rebost',
36.73,
52,
'2023-05-29',
5963886298051);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Taronja - Enllauna, Mandarí',
'produir',
65.0,
1,
'2023-04-20',
6131761721332);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)
valors ('Porc - Espatlla',
'produir',
55.55,
73,
'2023-05-01',
9343592107125);

inserir
a
productes (nom_producte,
categoria,
preu,
quantitat,
data de caducitat,
codi de barres)

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

Exemple 1:

En aquest cas, tenim accés a la taula 'productes' que conté la informació del producte. Suposem que volem obtenir el següent codi de barres de la fila actual.

Podem utilitzar la funció lead() de la següent manera:



Suposem que tenim una taula que conté la informació d'un empleat de la següent manera:

seleccionar
nom del producte,
preu,
conduir (codi de barres) sobre (partició per categoria
demanat per
preu asc) com a article_següent
des de
productes p;

El codi donat divideix les dades en funció de la categoria. A continuació, obté el següent codi de barres a la partició mitjançant la funció lead().

La sortida resultant és la següent:

Exemple 2:

Si no hi ha cap fila següent en una columna específica (fora de límit), la funció estableix el valor a NULL tal com es mostra a l'exemple anterior.

Per establir un valor predeterminat per a qualsevol accés fora de l'àmbit, podem fer el següent:

seleccionar
nom del producte,
preu,
lead(codi de barres, 1, 'N/A') sobre (partició per categoria
demanat per
preu asc) com a article_següent
des de
productes p;

Definim el valor per defecte a 'N/A'. Això hauria de substituir qualsevol valor fora de límit tal com es mostra a la sortida següent:

NOTA : establir el desplaçament a 1 és semblant a no especificar cap valor.

Exemple 3:

Suposem que voleu accedir a les dues files següents des de la fila actual. Ho podem fer establint el valor de compensació a 2.

A continuació s'il·lustra un exemple de consulta:

seleccionar
nom del producte,
preu,
lead(codi de barres, 2, 'N/A') sobre (partició per categoria
demanat per
preu asc) com a article_següent
des de
productes p;

Aquesta consulta retorna les dues files següents a cada partició, tal com es mostra a continuació:

Aquí ho tens!

Conclusió

En aquest tutorial, hem après a treballar amb la funció lead() per obtenir el següent element de la fila actual.