Oracle hat eine LEVEL
Pseudospalte
die Sie verwenden können:
SELECT
myTable.ID,
myTable.ParentID
FROM myTable
WHERE LEVEL = 1
CONNECT BY PRIOR myTable.ID = myTable.ParentID
Um einen Wert der obersten Ebene (Root) auf einer beliebigen Ebene zu finden, stellen Sie dem Spaltennamen den CONNECT_BY_ROOT
voran Betreiber:
SELECT
myTable.ID,
myTable.ParentID,
CONNECT_BY_ROOT myTable.ID AS "Top Level ID"
FROM myTable
CONNECT BY PRIOR myTable.ID = myTable.ParentID