Funzione LEAD() di SQL Server

Funzione Lead Di Sql Server



In questo articolo, ti illustreremo i fondamenti dell'utilizzo della funzione lead() in SQL Server. Tratteremo cosa fa la funzione, la sua sintassi ed esempi pratici su come usarla.

Funzione principale di SQL Server

La funzione lead in SQL Server è una funzione analitica che consente di accedere ai dati da una riga successiva nello stesso set di risultati senza un self-join.

La funzione consente di accedere a una riga a un determinato offset precedente alla riga corrente. Ad esempio, utilizzando la funzione lead, puoi trovare la riga immediatamente successiva alla riga corrente, la decima riga dalla riga corrente, ecc.







Questa funzione spinge gli sviluppatori di database a eseguire confronti di righe senza attività complesse come l'unione, l'utilizzo di viste, ecc.



Funzione Sintassi

Quanto segue illustra la sintassi della funzione lead() in SQL Server:



LEAD (espressione_scalare [, offset], [predefinito])
SOPRA ( [ partizione_per_clausola ] ordine_per_clausola )

L'elenco successivo è gli argomenti supportati e la loro funzionalità:





  1. scalar_expression – questo argomento denota il valore restituito in base all'offset definito. Può essere un'espressione di qualsiasi tipo che restituisce un singolo valore. Tuttavia, il valore di scalar_expression non può essere un'altra funzione analitica/finestra.
  2. offset: imposta quante righe dalla riga corrente posizionano il valore recuperato. Per impostazione predefinita, la funzione recupererà la riga immediatamente aggettivo alla riga corrente. Analogamente, il valore del parametro offset non può essere una funzione analitica o un numero intero negativo.
  3. default: questo parametro imposta il valore predefinito se il valore di offset fornito è oltre l'ambito della partizione di destinazione. Per impostazione predefinita, la funzione restituirà NULL.
  4. PARTITION BY – la clausola partition_by definisce le regole che suddividono il set di risultati in varie sezioni. La funzione viene quindi applicata a ciascuna partizione risultante.
  5. ORDER BY – definisce l'ordine logico in cui vengono applicate le righe in ciascuna partizione.

La funzione restituisce il tipo di dati definito in scalar_expression. Se il valore restituito è NULL, la funzione restituisce NULL.

Dati di esempio

Usiamo alcuni database di esempio per illustrare meglio come utilizzare la funzione lead. Innanzitutto, utilizza le query come mostrato di seguito:



DROP DATABASE SE ESISTE inventario;

CREA DATABASE inventario;

USA l'inventario;

DROP TABELLA SE ESISTE prodotti;

CREA TABELLA prodotti (
id int identità chiave primaria non nullo,
nome_prodotto varchar(100),
produttore varchar(50),
quantità int non nulla,
prezzo int predefinito 0,
bit in_stock
);
inserire nei prodotti (nome_prodotto, produttore, quantità, prezzo, in_stock)
valori ('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 serie 6', 'Apple', 459, 379,90, 1),
('Apple AirPods Pro', 'Apple', 200, 199,99, 1),
('55' Classe S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

La tabella risultante è quella mostrata:

Esempio 1: utilizzo della funzione lead() di SQL Server su un set di risultati

L'esempio seguente utilizza la funzione lead() per restituire il prezzo del prodotto successivo.

Selezionare
nome del prodotto,
produttore,
quantità,
prezzo,
piombo (prezzo,
1) oltre (
ordinare per quantità)
da
prodotti;

Tabella risultante:

Poiché non vi è alcuna riga dall'ultima colonna, la funzione restituisce NULL.

Esempio 2: utilizzo della funzione lead() di SQL Server su un set di partizioni

Possiamo anche recuperare il prodotto successivo in una data partizione. Ad esempio, possiamo partizionare i dati sopra in base al produttore e applicare la funzione lead() in ogni partizione

Un'illustrazione di esempio è come mostrato:

Selezionare
nome del prodotto,
produttore,
quantità,
prezzo,
piombo (prezzo,
1) oltre (
partizione per produttore
ordinare per quantità)
da
prodotti;

La query sopra dovrebbe dividere le righe in base al produttore e recuperare il prezzo successivo per i valori in ciascuna partizione.

In questo caso, ci sono tre partizioni.

Conclusione

In questo post, hai compreso gli elementi costitutivi della funzione lead() in SQL Server. Hai anche imparato come utilizzare la funzione lead() su un risultato e un set di partizioni.