sammanfattning: i den här handledningen lär du dig att jämföra två rader i samma tabell i Oracle.
förutsatt att du har en product_prices tabell som lagrar prishistorik för alla produkter. Följande uttalande skapar tabellen product_prices :
Code language: SQL (Structured Query Language) (sql)
tabellen product_prices har följande kolumner:
-
idär en identitetskolumn vars värden genereras automatiskt.idär den primära nyckeln i tabellen. -
product_idlagrar Produkt-id som identifierar en produkt. -
valid_fromlagrar det ikraftträdandedatum från vilket listpriset är giltigt. -
list_pricelagrar listpriset för en produkt.
följande INSERT – satser infogar några rader i tabellen product_prices :
Code language: SQL (Structured Query Language) (sql)
som du kan se ändras priset på Produkt-id. För att hitta skillnaderna mellan varje efterföljande ändringar måste du jämföra två på varandra följande rader.
vi antar att det inte finns något gap i kolumnen id och listpriset med det tidigare giltiga från datumet infogas före listpriset med senare giltigt från datum, jämför följande fråga priser mellan varje ändring av produkt-id 100:
Code language: SQL (Structured Query Language) (sql)

i den här frågan använde vi självkopplingen som går med i tabellen product_prices till sig själv. Följande kopplingspredikat tillåter den aktuella raden med föregående rad.
Code language: SQL (Structured Query Language) (sql)
nu borde du veta hur man jämför två rader i samma tabell i Oracle.