oracle的树结构查询(两种树表结构转化)

oracle的树结构查询(两种树表结构转化)

下图是一个树图,主要是为了直观的看到每个节点的关系
在这里插入图片描述
我会用两个不同的树表将这个图存在数据库中

下面是第一种树表(这一种很直观,是从根节点直接到叶子节点,与上图相匹配,这种树图逻辑清楚,但是出现了重复性的节点)
在这里插入图片描述
下面是第二种树表(这是以每一个节点为一行数据,用上级节点进行联系,避免了重复,但是节点关系没有上表清楚)
在这里插入图片描述
将第一种树表转化为第二种树表的SQL语句是

   select distinct LVL1_NO as ORG_ID,
                   'root' as UP_ORG,
                   LVL1_NAME as ORG_NAME,
                   1 as LVL,
                   0 as LEAF_FLAG
     from tree_table1 t1
   
   union all
   
   select distinct LVL2_NO as ORG_ID,
                   LVL1_NO as UP_ORG,
                   LVL2_NAME as ORG_NAME,
                   2 as LVL,
                   case
                     when LVL3_NO is null then
                      1
                     else
                      0
                   end as LEAF_FLAG
     from tree_table1
   
   union all
   
   select distinct LVL3_NO as ORG_ID,
                   LVL2_NO as UP_ORG,
                   LVL3_NAME as ORG_NAME,
                   3 as LVL,
                   case
                     when LVL4_NO is null then
                      1
                     else
                      0
                   end as LEAF_FLAG
     from tree_table1
   
   union all
   
   select distinct LVL4_NO   as ORG_ID,
                   LVL3_NO   as UP_ORG,
                   LVL4_NAME as ORG_NAME,
                   4         as LVL,
                   1         as 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值