Cum se compară două rânduri în același tabel în Oracle

rezumat: în acest tutorial, veți învăța cum să comparați două rânduri în același tabel în Oracle.

presupunând că aveți un tabel product_prices care stochează istoricul prețurilor tuturor produselor. Următoarea instrucțiune creează tabelul product_prices :

Code language: SQL (Structured Query Language) (sql)

tabelul product_prices are următoarele coloane:

  • id este o coloană de identitate ale cărei valori sunt generate automat. id este cheia primară a tabelului.
  • product_id stochează ID-ul produsului care identifică un produs.
  • valid_from stochează data efectivă de la care este valabil prețul de listă.
  • list_price stochează prețul de listă al unui produs.

următoarele instrucțiuni INSERT introduceți câteva rânduri în tabelul product_prices :

Code language: SQL (Structured Query Language) (sql)

după cum puteți vedea, prețul id-ului produsului se schimbă. Pentru a găsi diferențele dintre fiecare modificare ulterioară, trebuie să comparați două rânduri succesive.

presupunem că nu există niciun decalaj în coloana id și că prețul de listă cu data anterioară valabilă de la dată este introdus înainte de prețul de listă cu data ulterioară valabilă de la dată, următoarea interogare compară prețurile între fiecare modificare a id-ului produsului100:

Code language: SQL (Structured Query Language) (sql)
cum se compară două rânduri în același tabel în Oracle

în această interogare, am folosit auto-asocierea care se alătură tabelului product_prices la sine. Următorul predicat join permite rândul curent cu rândul anterior.

Code language: SQL (Structured Query Language) (sql)

acum, ar trebui să știți cum să comparați două rânduri din același tabel în Oracle.

Write a Comment

Adresa ta de email nu va fi publicată.