我想使用 oracle connect by , start with 语句获取每个子项的最终父项
我正在使用 start with 、 connect by 语句来递归地获取数据,我正在获取所有父级 - 子级,但我只想获取每个子级的最终父级。 例如,我有以下数据
child --> parent
a ------> b,
b ------> c,
c ------> d,
c ------> e
,所以我想要输出只是
a --> d,
and a --> e
我的查询是
SELECT LEVEL, cp.child, cp.parent FROM child_parent cp
CONNECT BY nocycle PRIOR cp.parent= cp.child
START WITH cp.child= a
任何机构都可以帮助我解决这个问题。
I am using start with , connect by statement to get data recursivly, i am getting all parent - child but i just want to get the end parent for each child.
for eg i have following data
child --> parent
a ------> b,
b ------> c,
c ------> d,
c ------> e
so i want the output just
a --> d,
and a --> e
my query is
SELECT LEVEL, cp.child, cp.parent FROM child_parent cp
CONNECT BY nocycle PRIOR cp.parent= cp.child
START WITH cp.child= a
can any body help me with this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
目前尚不清楚您是否想要对根“a”进行硬编码(这使得解决方案更容易),或者是否想要为多个根提供更通用的解决方案。假设是前者,那么这可能会让您继续下去:
如果您想要任何根的更通用的解决方案,这可能会帮助
编辑,因为父级不能为空:
It's unclear whether you want to hard code your root 'a' (which makes the solution a bit easier) or if you want to have a more generic solution for multiple roots. Assuming the former, then this might get you going:
If you want a more generic solution for any root, the this might help
Edit, for parent cannot be null: