我在 Oracle 中使用 CONNECT BY
子句查找分层数据时遇到问题。让我举个例子:A 是我的父部分,它有子部分 B,B 也有一个子部分 C。当我使用 CONNECT BY
子句时,我能够获得所有三个级别但是我只想要最高级别,即 A。
最佳答案
Oracle 有一个 LEVEL
pseudocolumn你可以使用:
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
关于oracle - 按子句连接以获得层次结构的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18110471/