Jak porovnat dva řádky ve stejné tabulce v Oracle

shrnutí: v tomto tutoriálu se dozvíte, jak porovnat dva řádky ve stejné tabulce v Oracle.

za předpokladu, že máte tabulku product_prices, která ukládá historii cen všech produktů. Následující příkaz vytvoří tabulku product_prices :

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

tabulka product_prices obsahuje následující sloupce:

  • id je sloupec identity, jehož hodnoty jsou generovány automaticky. id je primárním klíčem tabulky.
  • product_id ukládá ID produktu, které identifikuje produkt.
  • valid_from ukládá datum účinnosti, od kterého je Ceníková cena platná.
  • list_price ukládá katalogovou cenu produktu.

následující příkazy INSERT vkládají některé řádky do tabulky product_prices :

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

jak vidíte, cena id produktu se mění. Chcete-li najít rozdíly mezi jednotlivými následnými změnami, musíte porovnat dva po sobě jdoucí řádky.

předpokládáme, že ve sloupci id není mezera a Ceníková cena s dřívějším platným datem je vložena před ceníkovou cenu s pozdějším platným datem, následující dotaz porovnává ceny mezi každou změnou id produktu100:

Code language: SQL (Structured Query Language) (sql)
jak porovnat dva řádky ve stejné tabulce v Oracle

v tomto dotazu jsme použili self-join, který spojuje tabulku product_prices k sobě. Následující predikát spojení umožňuje aktuální řádek s předchozím řádkem.

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

Nyní byste měli vědět, jak porovnat dva řádky ve stejné tabulce v Oracle.

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.