Zu Oracle

Bereich:
Versionsinfo:
SQL
10.1, 10.2, 11.1, 11.2
Erstellung:
Letzte Überarbeitung:
07/2004 MP
06/2009 MA
 Als PDF Downloaden!

Hierarchie

Hierarchische Abfragen ermöglichen es, Daten basierend auf einer natürlichen hierarchischen Beziehung ("Vater und Sohn Beziehungen") zwischen den Zeilen einer Tabelle abzurufen. Mit hierarchischen Abfragen ist es möglich, eine Baumstruktur in der Tabelle darzustellen. Dieser Typ von Abfrage kann nur durchgeführt werden, wenn zwischen den Zeilen in einer Tabelle eine Beziehung besteht (z.B. Mitarbeiternummer und Vorgesetztennummer).

Syntax:

SELECT [LEVEL], column, expr...
FROM table
[WHERE conditions]
START WITH conditions
CONNECT BY PRIOR condtions;

wobei

LEVEL eine Pseudospalte ist, die zählt, wie viele Ebenen nach unten man sich bewegt hat,
START WITH den Ausgangspunkt der hierarchischen Abfrage festlegt und
CONNECT BY PRIOR die Beziehung zwischen Vater- und Kindspalten angibt.

Beispiel:

COLUMN hierarchie FORMAT A15
BREAK ON deptno
SELECT LPAD (' ', 3*LEVEL -3) || ename hierarchie , LEVEL, empno, mgr, deptno
FROM emp
CONNECT BY PRIOR empno = mgr
START WITH ename = 'KING';

HIERARCHIE           LEVEL      EMPNO        MGR     DEPTNO
--------------- ---------- ---------- ---------------------

KING                     1       7839                    10
JONES                    2       7566       7839         20
SCOTT                    3       7788       7566           
ADAMS                    4       7876       7788
           
FORD                     3       7902       7566           
SMITH                    4       7369       7902           
BLAKE                    2       7698       7839         30
ALLEN                    3       7499       7698
           
WARD                     3       7521       7698           
MARTIN                   3       7654       7698           
TURNER                   3       7844       7698           
JAMES                    3       7900       7698           
CLARK                    2       7782       7839         10
MILLER                   3       7934       7782


           

Suche

Kontakt

Telefon:
  089 6228 6789-0

Telefon (noch gültig):
  089 679090-40

E-Mail Verteiler Monatstipps

Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.