Fonction SQL Server LEAD()

Fonction Sql Server Lead



Dans cet article, nous vous expliquerons les principes fondamentaux de l'utilisation de la fonction lead() dans SQL Server. Nous couvrirons ce que fait la fonction, sa syntaxe et des exemples pratiques de son utilisation.

Fonction principale de SQL Server

La fonction lead dans SQL Server est une fonction analytique qui vous permet d'accéder aux données d'une ligne suivante dans le même jeu de résultats sans jointure réflexive.

La fonction permet d'accéder à une ligne à un décalage donné précédant la ligne courante. Par exemple, en utilisant la fonction lead, vous pouvez trouver la ligne immédiatement après la ligne actuelle, la 10ème ligne à partir de la ligne actuelle, etc.







Cette fonction permet aux développeurs de bases de données d'effectuer des comparaisons de lignes sans tâches complexes telles que joindre, utiliser des vues, etc.



Syntaxe de la fonction

Ce qui suit décrit la syntaxe de la fonction lead() dans SQL Server :



LEAD ( expression_scalaire [ , décalage ] , [ défaut ] )
OVER ( [ partition_by_clause ] order_by_clause )

La liste suivante est les arguments pris en charge et leur fonctionnalité :





  1. scalar_expression – cet argument indique la valeur de retour basée sur le décalage défini. Il peut s'agir d'une expression de n'importe quel type renvoyant une seule valeur. Cependant, la valeur de scalar_expression ne peut pas être une autre fonction analytique/fenêtre.
  2. décalage - cela définit le nombre de lignes à partir de la position de ligne actuelle de la valeur extraite. Par défaut, la fonction va chercher la ligne immédiatement adjectif à la ligne actuelle. De même, la valeur du paramètre offset ne peut pas être une fonction analytique ou un entier négatif.
  3. default – ce paramètre définit la valeur par défaut si la valeur de décalage fournie est au-delà de la portée de la partition cible. Par défaut, la fonction renverra NULL.
  4. PARTITION BY – la clause partition_by définit les règles qui divisent le jeu de résultats en différentes sections. La fonction est ensuite appliquée à chaque partition résultante.
  5. ORDER BY - ceci définit l'ordre logique dans lequel les lignes de chaque partition sont appliquées.

La fonction renvoie le type de données défini dans scalar_expression. Si la valeur renvoyée est NULL, la fonction renvoie NULL.

Exemple de données

Utilisons quelques exemples de bases de données pour mieux illustrer comment utiliser la fonction lead. Tout d'abord, utilisez les requêtes comme indiqué ci-dessous :



SUPPRIMER LA BASE DE DONNÉES SI EXISTE l'inventaire ;

CRÉER un inventaire de BASE DE DONNÉES ;

UTILISER l'inventaire ;

DÉPOSER LE TABLEAU SI EXISTE des produits ;

Produits CRÉER TABLE (
id int clé primaire d'identité non nulle,
nom_produit varchar(100),
fabricant varchar(50),
quantité entier non nul,
prix par défaut 0,
mors in_stock
);
insérer dans les produits (product_name, fabricant, quantité, prix, in_stock)
valeurs ('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),
(« Téléviseur intelligent OLED 4K de classe S95B de 55 pouces », « Samsung », 900, 1999.90, 1),
(«Écran de jeu incurvé Mini-LED Odyssey Ark Quantum», «Samsung», 50, 2999.90, 1);

Le tableau obtenu est le suivant :

Exemple 1 – Utilisation de la fonction SQL Server lead() sur un ensemble de résultats

L'exemple ci-dessous utilise la fonction lead() pour renvoyer le prix du produit suivant.

sélectionner
nom_produit,
fabricant,
quantité,
le prix,
plomb(prix,
1) sur (
commander par quantité)
de
des produits;

Tableau résultant :

Puisqu'il n'y a pas de ligne à partir de la dernière colonne, la fonction renvoie NULL.

Exemple 2 – Utilisation de la fonction SQL Server lead() sur un ensemble de partitions

Nous pouvons également récupérer le produit suivant dans une partition donnée. Par exemple, nous pouvons partitionner les données ci-dessus en fonction du fabricant et appliquer la fonction lead() dans chaque partition

Un exemple d'illustration est comme indiqué :

sélectionner
nom_produit,
fabricant,
quantité,
le prix,
plomb(prix,
1) sur (
cloison par fabricant
commander par quantité)
de
des produits;

La requête ci-dessus doit diviser les lignes en fonction du fabricant et récupérer le prix suivant pour les valeurs de chaque partition.

Dans ce cas, il y a trois partitions.

Conclusion

Dans cet article, vous avez compris les éléments constitutifs de la fonction lead() dans SQL Server. Vous avez également appris à utiliser la fonction lead() sur un ensemble de résultats et de partitions.