oracle数据库树轻松层次

 在oracle数据库树层次,轻松得到层次数,及条件节点所有叶子节点

 

创建表结构就不用多讲了,肯定必不可少有上下级树特征字段

 

T_AG_CONTENTMESSAGE
表数据
   id           superid  infocontent
   01          0       
   02          0
   054        0
   0101      01
   0102      01
   010101  0101       短信内容01
   010102  0101       短信内容02
   010201  0102       短信内容03
   010202  0102       短信内容04
   05401    054         短信内容05
   05402    054         短信内容06

 

查看层次语句,得到每个节点处的层次
 
select (level-1) as le ,a.id
from t_ag_contentmessage a 
start with a.id ='0'
connect by prior a.id = a.superid

而要想得到如 01节点下所有叶子节点
就如下

SELECT id
    FROM (
           SELECT id,infocontent
             FROM T_AG_CONTENTMESSAGE
       START WITH id= '01'          --设置相应节点参数
 CONNECT BY PRIOR id = superid
) k
WHERE length(TRIM(k.infocontent)) > 0;

 

找出子节点下所有叶子节点 如果本身就是叶子节点时,则结果为其本身
看就是这么简单,这要得意于oracle的功能强大,呵呵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值