samenvatting: in deze zelfstudie leert u hoe u twee rijen in dezelfde tabel in Oracle kunt vergelijken.
uitgaande van een tabel product_prices die de prijsgeschiedenis van alle producten opslaat. Het volgende statement maakt de product_prices tabel aan:
Code language: SQL (Structured Query Language) (sql)
de tabel product_prices bevat de volgende kolommen:
-
idis een identiteitskolom waarvan de waarden automatisch worden gegenereerd.idis de primaire sleutel van de tabel. -
product_idslaat de Product-id op die een product identificeert. -
valid_fromslaat de ingangsdatum op vanaf welke de catalogusprijs geldig is. -
list_priceslaat de catalogusprijs van een product op.
de volgende INSERT statements voeg enkele rijen in de product_prices tabel:
Code language: SQL (Structured Query Language) (sql)
zoals u kunt zien, de prijs van het product id verandert. Als u de verschillen tussen elke volgende wijziging wilt vinden, moet u twee opeenvolgende rijen vergelijken.
we gaan ervan uit dat er geen gat is in de kolom id en dat de catalogusprijs met de eerdere geldige vanaf datum wordt ingevoegd vóór de catalogusprijs met de latere geldige vanaf datum, de volgende query vergelijkt prijzen tussen elke wijziging van de Product-id 100:
Code language: SQL (Structured Query Language) (sql)

in deze query hebben we de self-join gebruikt die de product_prices tabel met zichzelf verbindt. Het volgende verbindingsvoorschrift staat de huidige rij toe met de vorige rij.
Code language: SQL (Structured Query Language) (sql)
nu moet u weten hoe u twee rijen in dezelfde tabel in Oracle kunt vergelijken.