Funció SQL Server LEAD().

Funcio Sql Server Lead



En aquest article, us explicarem els fonaments de treballar amb la funció lead() a SQL Server. Cobrirem què fa la funció, la seva sintaxi i exemples pràctics de com utilitzar-la.

Funció principal de SQL Server

La funció principal a SQL Server és una funció analítica que us permet accedir a les dades d'una fila posterior del mateix conjunt de resultats sense una auto-unió.

La funció us permet accedir a una fila amb un desplaçament determinat anterior a la fila actual. Per exemple, utilitzant la funció principal, podeu trobar la fila immediatament després de la fila actual, la 10a fila de la fila actual, etc.







Aquesta funció impulsa els desenvolupadors de bases de dades a realitzar comparacions de files sense tasques complexes com ara unir-se, utilitzar vistes, etc.



Sintaxi de la funció

A continuació es mostra la sintaxi de la funció lead() a SQL Server:



LEAD (expressió_escalar [,offset], [per defecte])
OVER ( [ partició_per_clàusula ] ordre_per_clàusula )

La llista següent és els arguments compatibles i la seva funcionalitat:





  1. escalar_expression: aquest argument denota el valor de retorn basat en el desplaçament definit. Aquesta pot ser una expressió de qualsevol tipus que retorni un sol valor. Tanmateix, el valor de l'expressió escalar no pot ser una altra funció analítica/finestra.
  2. offset: estableix quantes files des de la posició actual de la fila s'ha obtingut el valor. De manera predeterminada, la funció obtindrà immediatament l'adjectiu de fila a la fila actual. De la mateixa manera, el valor del paràmetre de compensació no pot ser una funció analítica o un nombre enter negatiu.
  3. per defecte: aquest paràmetre estableix el valor per defecte si el valor de desplaçament proporcionat està fora de l'abast de la partició de destinació. Per defecte, la funció retornarà NULL.
  4. PARTITION BY: la clàusula partition_by defineix les regles que divideixen el conjunt de resultats en diverses seccions. A continuació, la funció s'aplica a cada partició resultant.
  5. ORDER BY: defineix l'ordre lògic en què s'apliquen les files de cada partició.

La funció retorna el tipus de dades definit a escalar_expression. Si el valor retornat és NULL, la funció retorna NULL.

Dades de mostra

Utilitzem algunes bases de dades d'exemple per il·lustrar millor com utilitzar la funció principal. Primer, utilitzeu les consultes com es mostra a continuació:



DEIXA LA BASE DE DADES SI HI HA inventari;

CREAR un inventari de BASE DE DADES;

ÚS d'inventari;

DEIXAR TAULA SI HI HA productes;

productes CREATE TABLE (
id int identitat clau primària no nul·la,
nom_producte varchar(100),
fabricant varchar(50),
quantitat int no nul·la,
preu int per defecte 0,
in_stock bit
);
inseriu als productes (nom_producte, fabricant, quantitat, preu, en_stock)
valors ('Apple iPad Air', 'Apple', 100, 569,99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony',  500, 499,99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Sèrie 6', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro', 'Apple', 200, 199,99, 1),
(Televisor intel·ligent OLED 4K de classe S95B de 55', 'Samsung', 900, 1999.90, 1),
('Pantalla de joc corba Mini-LED Odyssey Ark Quantum', 'Samsung', 50, 2999.90, 1);

La taula resultant és la que es mostra:

Exemple 1: ús de la funció lead() d'SQL Server sobre un conjunt de resultats

L'exemple següent utilitza la funció lead() per retornar el preu del següent producte.

seleccionar
nom del producte,
fabricant,
quantitat,
preu,
plom (preu,
1) més de (
ordenar per quantitat)
des de
productes;

Taula resultant:

Com que no hi ha cap fila de l'última columna, la funció retorna NULL.

Exemple 2: ús de la funció lead() d'SQL Server sobre un conjunt de particions

També podem obtenir el següent producte en una partició determinada. Per exemple, podem particionar les dades anteriors en funció del fabricant i aplicar la funció lead() a cada partició

Una il·lustració d'exemple és la que es mostra:

seleccionar
nom del producte,
fabricant,
quantitat,
preu,
plom (preu,
1) més de (
partició per fabricant
ordenar per quantitat)
des de
productes;

La consulta anterior hauria de dividir les files segons el fabricant i obtenir el següent preu per als valors de cada partició.

En aquest cas, hi ha tres particions.

Conclusió

En aquesta publicació, heu entès els blocs de construcció de la funció lead() a SQL Server. També heu après a utilitzar la funció lead() sobre un resultat i un conjunt de particions.