Oracleには、 LEVEL
があります。 疑似列
使用できるもの:
SELECT
myTable.ID,
myTable.ParentID
FROM myTable
WHERE LEVEL = 1
CONNECT BY PRIOR myTable.ID = myTable.ParentID
任意のレベルから最上位(ルート)値を見つけるには、列名の前にCONNECT_BY_ROOT
を付けます。 演算子:
SELECT
myTable.ID,
myTable.ParentID,
CONNECT_BY_ROOT myTable.ID AS "Top Level ID"
FROM myTable
CONNECT BY PRIOR myTable.ID = myTable.ParentID