Oracle har en LEVEL
pseudokolonne
som du kan bruge:
SELECT
myTable.ID,
myTable.ParentID
FROM myTable
WHERE LEVEL = 1
CONNECT BY PRIOR myTable.ID = myTable.ParentID
For at finde en værdi på øverste niveau (rod) fra et hvilket som helst niveau, skal du gå foran kolonnenavnet med CONNECT_BY_ROOT
operatør:
SELECT
myTable.ID,
myTable.ParentID,
CONNECT_BY_ROOT myTable.ID AS "Top Level ID"
FROM myTable
CONNECT BY PRIOR myTable.ID = myTable.ParentID