利用start with connect by 查询子节点和父节点数据显示为树状形

利用start with   connect by  查询子节点和父节点数据显示为树状形

 

前段时间做了一个根据子节点和父节点查询出树状型

表数据:

要实现的结果:

 

实现的sql:

select rpad('---', (level - 1) * 3, '---') || name as name, id
  from t_nscreen_region
 start with id = 1
connect by nocycle prior id = parent_id 
order SIBLINGS BY id;

 

其中函数理解:

1.PRIOR 
   阶层查询的CONNECY BY condition的条件式需要用到PRIOR来指定父节点
2.CONNECT BY
   通过CONNECT BY子句定义子节点和父节点的关系
3.start with 
   通过start with 指定根节点(不指定start with会出现重复记,不指定NOCYCLE没事)
4.LEVEL 
   通过LEVEL虚拟列表示节点的关系
5.rpad(string,padded_length,[pad_string])函数
   从右边对字符串使用指定的字符进行填充
   string:表示要追加的字符,
   padded_length:表示追加后的长度
   pad_string:表示string字符长度不够padded_length时,取pad_string的字符,默认为空格

6.lpad( string1, padded_length, [ pad_string ] )函数
   从左边对字符串使用指定的字符进行填充
   string1:源字符串
   padded_length:最终返回的字符串的长度,如果最终返回的字符串的长度比源字符串的小,那么此函数实际上对源串进行截断处理
   pad_string:用于填充的字符,可以不填,默认为空字符
7.order SIBLINGS BY id :按id进行排序

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值