Hur man jämför två rader i samma tabell i Oracle

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_id lagrar Produkt-id som identifierar en produkt.
  • valid_from lagrar det ikraftträdandedatum från vilket listpriset är giltigt.
  • list_price lagrar 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)
hur man jämför två rader i samma tabell i Oracle

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.

Write a Comment

Din e-postadress kommer inte publiceras.