分层查询 - 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;
两者都会给出相同的答案。