oracle 中怎样递归查询出子节点的最上层父节点,并且其父节点是自身
oracle中怎样递归查询出子节点的最上层父节点,并且其父节点是自身我用startwith...connectbyprior查询不出来,因为到了最上层将会死循环,就会报O...
oracle 中怎样递归查询出子节点的最上层父节点,并且其父节点是自身
我用start with...connect by prior查询不出来,因为到了最上层将会死循环,就会报ORA-01436: 用户数据中的 CONNECT BY 循环的错误,表如下:知道3 查1
子 父
1 1
2 1
3 2 展开
我用start with...connect by prior查询不出来,因为到了最上层将会死循环,就会报ORA-01436: 用户数据中的 CONNECT BY 循环的错误,表如下:知道3 查1
子 父
1 1
2 1
3 2 展开
5个回答
展开全部
1、创建测试表,create table test_connect(id number, p_id number);
2、插入测试数据,
insert into test_connect values(1,1);
insert into test_connect values(2,1);
insert into test_connect values(3,2);
insert into test_connect values(4,3);
commit;
3、查询数据表内容,select * from test_connect ,
4、执行递归查询语句,加入nocycle要素,不会出现【ORA-01436: 用户数据中的 CONNECT BY 循环的错误】,执行结果如下,
select *
from test_connect t
start with id = 4
connect by nocycle prior t.p_id = t.id
展开全部
可以指定根节点,到根节点处停止递归
select sd.id,
sd.parent_id,
sd.name,
connect_by_root(sd.id) city_id, -- 递归查询到根节点的ID
connect_by_root(sd.name)city_name -- 递归查询到根节点的name
from sc_district sd
where sd.name = '响滩镇' -- 定位到树的叶子节点
start with parent_id = 1 -- 从下到上遍历到根节点,只到parent_id =1 才结束遍历(可以想象成遍历到树根,第一级别节点)
connect by prior id= sd.parent_id -- 自下而上,下一行的id等于这一行的parent_id
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-11-30
展开全部
select id from ( select id ,PARENTLOGID from 表一 connect by nocycle prior PARENTLOGID=id START WITH id='3' ) where PARENTLOGID is null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
treeview.selectednode.parentnode貌似有这个属性,你找找parent
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主您好
可以试试connect by prior替换成connect by nocycle prior
可以试试connect by prior替换成connect by nocycle prior
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询