Fonction principale SQL

Fonction Principale Sql



La fonction SQL lead() vous permet d'accéder à la ligne suivante à partir de la ligne actuelle à un décalage spécifique. En bref, la fonction lead() permet d'accéder à la ligne suivante à partir de la ligne actuelle. En spécifiant la valeur de décalage, vous pouvez accéder aux lignes suivantes 1, 2, 3, etc. à partir de la ligne actuelle.

C'est l'inverse de la fonction lag() qui permet d'accéder aux lignes précédentes.







Fonction SQL Lead()

La syntaxe de la fonction est la suivante :



LEAD(expression_valeur, décalage [, par défaut])
SUR (
[PARTITION PAR expression_partition]
ORDER BY expression_tri [ASC | DESC]
);

Voici les arguments pris en charge :



  1. expression_valeur – Il spécifie la valeur de retour de la ligne précédente. L'expression doit être évaluée à une valeur unique.
  2. compenser – Il spécifie le nombre de lignes en avant de la ligne actuelle auxquelles accéder.
  3. défaut – Il définit la valeur par défaut si le décalage est en dehors de la portée de la partition. Par défaut, la valeur est définie sur NULL.
  4. Partitionner par – Il précise comment partitionner les données.
  5. Commandé par – Il définit le format d'ordre des lignes de chaque partition.

Exemple de configuration de données

Avant de plonger dans le fonctionnement de la fonction lead(), commençons par configurer la table de base à des fins de démonstration.





Produits CRÉER UNE TABLE (
product_id INT CLÉ PRIMAIRE AUTO_INCREMENT,
nom_produit VARCHAR(255),
catégorie VARCHAR(255),
prix DÉCIMAL(10, 2),
quantité INT,
date_d'expiration DATE,
code-barres BIGINT
);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs (« Toque de chef 25 cm »,
'boulangerie',
24.67,
57,
'2023-09-09',
2854509564204);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs (« Œufs de caille - en conserve »,
'garde-manger',
17.99,
67,
'2023-09-29',
1708039594250);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs ('Café - Lait de poule Capuccino',
'boulangerie',
92.53,
dix,
'2023-09-22',
8704051853058);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs ('Poire - Barbarie',
'boulangerie',
65.29,
48,
'2023-08-23',
5174927442238);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs ('Pâtes - Cheveux d'Ange',
'garde-manger',
48.38,
59,
'2023-08-05',
8008123704782);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs (« Vin - Prosecco Valdobiaddene »,
'produire',
44.18,
3,
'2023-03-13',
6470981735653);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs ('Pâtisserie - Mini Assortiment Français',
'garde-manger',
36.73,
52,
'2023-05-29',
5963886298051);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs ('Orange - En conserve, Mandarine',
'produire',
65,0,
1,
'2023-04-20',
6131761721332);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)
valeurs (« Porc - Épaule »,
'produire',
55.55,
73,
'2023-05-01',
9343592107125);

insérer
dans
produits (nom_produit,
catégorie,
prix,
quantité,
date d'expiration,
code à barre)

valeurs (« Dc Hikiage Hira Huba »,
'produire',
56.29,
53,
'2023-04-14',
3354910667072);

Exemple 1:

Dans ce cas, nous avons accès au tableau « produits » qui contient les informations sur le produit. Supposons que nous souhaitions obtenir le code-barres suivant de la ligne actuelle.

Nous pouvons utiliser la fonction lead() comme suit :



Supposons que nous ayons un tableau contenant les informations d'un employé comme suit :

sélectionner
nom_produit,
prix,
lead(code-barres) sur (partition par catégorie
commandé par
prix asc) comme next_item
depuis
produits p;

Le code donné partitionne les données en fonction de la catégorie. Il récupère ensuite le code-barres suivant dans la partition à l'aide de la fonction lead().

Le résultat résultant est le suivant :

Exemple 2 :

S'il n'y a pas de ligne suivante dans une colonne spécifique (hors limite), la fonction définit la valeur sur NULL comme indiqué dans l'exemple précédent.

Pour définir une valeur par défaut pour tout accès hors de portée, nous pouvons procéder comme suit :

sélectionner
nom_produit,
prix,
lead(code-barres, 1, 'N/A') over (partition par catégorie
commandé par
prix asc) comme next_item
depuis
produits p;

Nous définissons la valeur par défaut sur « N/A ». Cela doit remplacer toute valeur hors limite, comme indiqué dans le résultat suivant :

NOTE : Définir le décalage sur 1 revient à ne spécifier aucune valeur.

Exemple 3 :

Supposons que vous souhaitiez accéder aux deux lignes suivantes à partir de la ligne actuelle. Nous pouvons le faire en définissant la valeur de décalage sur 2.

Un exemple de requête est illustré ci-dessous :

sélectionner
nom_produit,
prix,
lead(code-barres, 2, 'N/A') over (partition par catégorie
commandé par
prix asc) comme next_item
depuis
produits p;

Cette requête renvoie les deux lignes suivantes dans chaque partition, comme indiqué ci-dessous :

Voilà!

Conclusion

Dans ce didacticiel, nous avons appris à utiliser la fonction lead() pour obtenir l'élément suivant de la ligne actuelle.