A Oracle tem um
LEVEL
pseudocoluna
que você pode usar:SELECT
myTable.ID,
myTable.ParentID
FROM myTable
WHERE LEVEL = 1
CONNECT BY PRIOR myTable.ID = myTable.ParentID
Para encontrar um valor de nível superior (raiz) de qualquer nível, preceda o nome da coluna com o
CONNECT_BY_ROOT
operador:SELECT
myTable.ID,
myTable.ParentID,
CONNECT_BY_ROOT myTable.ID AS "Top Level ID"
FROM myTable
CONNECT BY PRIOR myTable.ID = myTable.ParentID