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:
-
id
is een identiteitskolom waarvan de waarden automatisch worden gegenereerd.id
is de primaire sleutel van de tabel. -
product_id
slaat de Product-id op die een product identificeert. -
valid_from
slaat de ingangsdatum op vanaf welke de catalogusprijs geldig is. -
list_price
slaat 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.