Sammendrag: i denne opplæringen lærer du hvordan du sammenligner to rader i samme tabell i Oracle.
Forutsatt at du har en product_prices tabell som lagrer prishistorikk for alle produkter. Følgende setning oppretter tabellen product_prices :
Code language: SQL (Structured Query Language) (sql)
tabellen product_prices har følgende kolonner:
-
ider en identitetskolonne hvis verdier genereres automatisk.ider primærnøkkelen i tabellen. -
product_idlagrer produkt-iden som identifiserer et produkt. -
valid_fromlagrer den effektive datoen som listeprisen er gyldig fra. -
list_pricelagrer listeprisen for et produkt.
følgende INSERT setninger sett inn noen rader i tabellen product_prices :
Code language: SQL (Structured Query Language) (sql)
som du kan se, endres prisen på produkt-id. For å finne forskjellene mellom hver påfølgende endringer, må du sammenligne to påfølgende rader.
vi antar at det ikke er noe gap i kolonnen id og listeprisen med tidligere gyldig fra dato er satt inn før listeprisen med senere gyldig fra dato.100:
Code language: SQL (Structured Query Language) (sql)
i denne spørringen brukte vi self-join som knytter seg til product_prices – tabellen til seg selv. Følgende sammenføyningspredikat tillater gjeldende rad med forrige rad.
Code language: SQL (Structured Query Language) (sql)
nå bør du vite hvordan du sammenligner to rader i samme tabell I Oracle.