Oracle使用递归获得首级和末级的内容

本文介绍了如何在Oracle数据库中使用递归查询(START WITH...CONNECT BY)来获取树形结构数据的根节点(root_id为0)和叶子节点(connect_by_isleaf = 1)。创建了一个名为t2的表格,插入了多条记录,并展示了如何从t2中筛选出根节点和叶子节点。此外,还展示了如何通过t3表来限制查询的起始节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create table t2(
      root_id number,
      id number,
      name varchar(5),
      description varchar(10)
      );
    insert into t2(root_id,id,name,description) values(0,1,'a','aaa');
    insert into t2(root_id,id,name,description) values(1,2,'a1','aaa1');
    insert into t2(root_id,id,name,description) values(1,3,'a2','aaa2');
    insert into t2(root_id,id,name,description) values(0,4,'b','bbb');
    insert into t2(root_id,id,name,description) values(4,5,'b1','bbb1');
    insert into t2(root_id,id,name,description) values(4,6,'b2','bbb2');
    insert into t2(root_id,id,name,description) values(6,7,'7b2','bbb2');
    insert into t2(root_id,id,name,description) values(-1,-2,'-a','-aaa');
     insert into t2(root_id,id,name,description) values(-2,-5,'-a','-aaa');
    create table t3(id number);
    insert into t3(id)values(7);
    insert into t3(id)values(3);insert into t3(id)values(6);
    select * from t2
    select substr(sys_connect_by_path(id,':'),2,2),connect_by_isleaf,T2.* from  t2 
    where connect_by_isleaf = 1 
    start with id  in (select id from t2)
    connect by prior root_id = id
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值