In questo articolo, ti guideremo attraverso i fondamenti del lavoro con la funzione Lead () in SQL Server. Copriremo ciò che fa la funzione, la sua sintassi ed esempi pratici su come usarla.
Funzione di lead 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 auto-koin.
La funzione consente di accedere a una riga in un determinato offset che precede la riga corrente. Ad esempio, utilizzando la funzione Lead, è possibile trovare la riga immediatamente dopo la riga corrente, la decima riga dalla riga corrente, ecc.
Questa funzione guida gli sviluppatori di database per eseguire confronti di righe senza compiti complessi come unire, utilizzare viste, ecc.
Sintassi della funzione
Il seguente interpreta la sintassi della funzione Lead () in SQL Server:
Lead (Scalar_Expression [, Offset], [Default])
Over ([partition_by_clause] order_by_clause)
L'elenco successivo sono gli argomenti supportati e la loro funzionalità:
- Scalar_Expression - Questo argomento indica il valore di ritorno in base all'offset definito. Questa 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.
- Offset: questo imposta quante righe dalla posizione della riga corrente il valore recuperato. Per impostazione predefinita, la funzione prenderà la riga immediatamente aggettiva nella riga corrente. Allo stesso modo, il valore del parametro di offset non può essere una funzione analitica o un numero intero negativo.
- Predefinito - Questo parametro imposta il valore predefinito se il valore offset fornito è oltre l'ambito della partizione target. Per impostazione predefinita, la funzione restituirà null.
- Partizione di - La clausola di partizione_BY definisce le regole che dividono il risultato impostato in varie sezioni. La funzione viene quindi applicata a ciascuna partizione risultante.
- Ordine per - Questo 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 è nullo, la funzione restituisce null.
Dati di esempio
Usiamo alcuni database di esempio per illustrare meglio come utilizzare la funzione di lead. Innanzitutto, usa le query come mostrato di seguito:
Drop database se esiste l'inventario;
Creare inventario del database;
Utilizzare l'inventario;
Drop tabella se esistono prodotti;
Crea prodotti da tavolo (
Id Int Identity Key Primary non null,
Product_Name Varchar (100),
Produttore Varchar (50),
quantità int non null,
Prezzo int predefinito 0,
in_stock bit
);
Insert in Products (Product_Name, 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 Series 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),
("Schermata di gioco curvo Mini-LED di Odyssey Ark", "Samsung", 50, 2999.90, 1);
La tabella risultante è come mostrata:
Esempio 1 - Utilizzo della funzione SQL Server Lead () 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,
Lead (prezzo,
1) oltre (
ordine per quantità)
da
prodotti;
Tabella risultante:
Poiché non esiste una riga dall'ultima colonna, la funzione restituisce null.
Esempio 2 - Utilizzo della funzione SQL Server Lead () su un set di partizioni
Possiamo anche prendere il prossimo prodotto in una determinata partizione. Ad esempio, possiamo suddividere i dati sopra in base al produttore e applicare la funzione Lead () in ciascuna partizione
Un'illustrazione di esempio è come mostrato:
Selezionare
nome del prodotto,
produttore,
quantità,
prezzo,
Lead (prezzo,
1) oltre (
partizione per produttore
ordine per quantità)
da
prodotti;
La query sopra dovrebbe dividere le righe in base al produttore e prendere il prezzo successivo per i valori in ogni partizione.
In questo caso, ci sono tre partizioni.
Conclusione
In questo post, hai compreso i mattoni della funzione Lead () in SQL Server. Hai anche imparato come utilizzare la funzione Lead () su un set di risultati e partizioni.