分层查询 - Oracle

Hierarchical Queries - Oracle

我有一个包含许多项目 ID 的 table,对于每个项目,我的层次结构如下。

我输入的是风险 ID..我怎样才能得到输入风险 ID 的顶级父级。

如果我给 25 作为输入,我应该得到 23 作为 output.how 我可以实现这个吗。

从所需的行开始并上升到根:

SELECT RiskID,
FROM   PROJECT_RISKS
WHERE  CONNECT_BY_ISLEAF = 1
START WITH
       RiskID    = 25
CONNECT BY
       PRIOR Link2 = Link1
AND    PRIOR ProjectID = ProjectID;

从根开始向下到所需的行:

SELECT  CONNECT_BY_ROOT( RiskID ) AS RiskID
FROM    Project_Risks
WHERE   RiskID    = 25
START WITH
        link2     IS NULL
CONNECT BY
       PRIOR Link1 = Link2
AND    PRIOR ProjectID = ProjectID;

两者都会给出相同的答案。