Oracle SQL Tutorial: Hierarchische Abfragen

Behandlung von Baumstrukturen mit Oracle SQL

Es gibt ein einfaches Konstrukt, um Baumstrukturen beliebiger Tiefe abzubilden. Dazu wird eine Spalte eingefügt, in der der Schlüssel des Vorgängers eingetragen wird. Über die „CONNECT BY„-Klausel werden dann die Zeilen verknüpft. Die Pseudospalte „LEVEL“ enthält die Ebene eines Objektes innerhalb der Baumstruktur.

create table mitarbeiter (
pnr number(10),
name varchar2(80),
chef_pnr number(10));

Die Pseudospalte „LEVEL“ kann verwendet werden, um die Hierarchieebene optisch durch Einrückung darzustellen:

select level ,pnr, LPAD(‚ ‚,2*(LEVEL-1)) || name name, chef_pnr
from mitarbeiter
start with pnr=1
connect by prior pnr = chef_pnr;