Comment Comparer Deux Lignes dans la même Table dans Oracle

Résumé: dans ce tutoriel, vous apprendrez à comparer deux lignes d’un même tableau dans Oracle.

En supposant que vous disposez d’une table product_prices qui stocke l’historique des prix de tous les produits. L’instruction suivante crée la table product_prices:

Code language: SQL (Structured Query Language) (sql)

La table product_prices comporte les colonnes suivantes:

  • id est une colonne d’identité dont les valeurs sont générées automatiquement. Le id est la clé primaire de la table.
  • product_id stocke l’ID de produit qui identifie un produit.
  • valid_from stocke la date d’entrée en vigueur à partir de laquelle le prix catalogue est valide.
  • list_price stocke le prix catalogue d’un produit.

Les instructions INSERT suivantes insèrent quelques lignes dans la table product_prices:

Code language: SQL (Structured Query Language) (sql)

Comme vous pouvez le voir, le prix de l’identifiant du produit change. Pour trouver les différences entre chaque modification ultérieure, vous devez comparer deux lignes successives.

Nous supposons qu’il n’y a pas d’écart dans la colonne id et que le prix catalogue avec la date de validité antérieure est inséré avant le prix catalogue avec la date de validité ultérieure, la requête suivante compare les prix entre chaque changement de l’id du produit 100:

Code language: SQL (Structured Query Language) (sql)
 Comment comparer Deux lignes d'une même Table dans Oracle

Dans cette requête, nous avons utilisé l’auto-jointure qui joint la table product_prices à elle-même. Le prédicat de jointure suivant autorise la ligne actuelle avec la ligne précédente.

Code language: SQL (Structured Query Language) (sql)

Maintenant, vous devez savoir comparer deux lignes dans la même table dans Oracle.

Write a Comment

Votre adresse e-mail ne sera pas publiée.