So vergleichen Sie zwei Zeilen in derselben Tabelle in Oracle

Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie zwei Zeilen in derselben Tabelle in Oracle vergleichen.

Angenommen, Sie haben eine product_prices -Tabelle, in der der Preisverlauf aller Produkte gespeichert ist. Die folgende Anweisung erstellt die Tabelle product_prices:

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

Die Tabelle product_prices enthält die folgenden Spalten:

  • id ist eine Identitätsspalte, deren Werte automatisch generiert werden. Der id ist der Primärschlüssel der Tabelle.
  • product_id speichert die Produkt-ID, die ein Produkt identifiziert.
  • valid_from speichert das Datum des Inkrafttretens, ab dem der Listenpreis gültig ist.
  • list_price speichert den Listenpreis eines Produkts.

Die folgenden INSERT -Anweisungen fügen einige Zeilen in die product_prices -Tabelle ein:

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

Wie Sie sehen, ändert sich der Preis der Produkt-ID. Um die Unterschiede zwischen den einzelnen nachfolgenden Änderungen zu ermitteln, müssen Sie zwei aufeinanderfolgende Zeilen vergleichen.

Wir gehen davon aus, dass in der Spalte id keine Lücke vorhanden ist und der Listenpreis mit dem früheren Gültigkeitsdatum vor dem Listenpreis mit dem späteren Gültigkeitsdatum eingefügt wird.Die folgende Abfrage vergleicht die Preise zwischen jeder Änderung der Produkt-ID 100:

Code language: SQL (Structured Query Language) (sql)
 So vergleichen Sie zwei Zeilen in derselben Tabelle in Oracle

In dieser Abfrage haben wir den Self-Join verwendet, der die product_prices -Tabelle mit sich selbst verbindet. Das folgende Join-Prädikat erlaubt die aktuelle Zeile mit der vorherigen Zeile.

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

Jetzt sollten Sie wissen, wie Sie zwei Zeilen in derselben Tabelle in Oracle vergleichen.

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht.