ORALCE SQL 遍历树

栏目表  t_fw_channel ,字段:ID,NAME,PARENT_ID,LEVEL_ID


--根据ID 获取栏目路径:

select substr(SYS_CONNECT_BY_PATH(name,'>'),2) PATH  
from t_fw_channel c where is_valid = 1 
start with id = 4 
connect by prior c.parent_id = c.id 


--根据字段最大值 进行累计 每次+100

select nvl(max(order_id),'0')+100 from t_fw_channel


--遍历完整树:

select *
  from t_fw_channel a
 where is_valid = 1  --判断是否可用
   and audit_status = 1  --判断状态是否通过
 start with a.parent_id = 0
connect by prior a.id = a.parent_id order siblings by order_id asc;


--根据3级栏目ID  遍历树(向上遍历):

select *
  from (select distinct *
          from (select *
                  from t_fw_channel a
                 where is_valid = 1
                   and audit_status = 1
                 start with a.id in (select ID from t_fw_channel  where  LEVEL_ID=3)
                connect by prior a.parent_id = a.id))
 start with parent_id = 0 connect by prior id = parent_id
 order siblings by order_id asc


--根据1级栏目ID 遍历树(只能头部向下遍历):

 select *
  from (select distinct *
          from (select *
                  from t_fw_channel a
                 where is_valid = 1
                   and audit_status = 1
                 start with a.id  in (select ID from t_fw_channel  where  LEVEL_ID=1)
                connect by prior  a.id=a.parent_id))
 start with parent_id = 0 connect by prior id = parent_id
 order siblings by order_id asc


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值