【发布时间】:2021-03-02 22:57:04
【问题描述】:
我需要使用递归逻辑找出每个孩子的最终父记录,直到我找到父项为空,例如child=12 的最终父级等于 7 。 因此,当我们遍历找到最终父级时,L1、L2 和 L3 的所有非空值都将填充到子记录中。 我可以得到一些指导,我应该使用什么 SQL 函数来生成以下输出。
输入:
Child Parent L1 L2 L3
12 435 xyz
435 7 xyz abc def
7 Null xyz
输出:
Child L1 L2 L3
7 xyz
435 xyz abc def
12 xyz abc def
创建表语句:
CREATE TABLE mytable(
child NUMBER,
parent NUMBER,
l1 varchar2(3),
l2 varchar2(3),
l3 varchar2(3)
);
填充数据脚本:
insert into mytable(child, parent, l1, l2, l3)
values (12, 435, 'xyz', null, null);
insert into mytable(child, parent, l1, l2, l3)
values (435, 7, 'xyz', 'abc', 'def');
insert into mytable(child, parent, l1, l2, l3)
values (7, null, 'xyz', null, null);
【问题讨论】:
标签: sql oracle parent-child