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

来源:互联网 发布:炒菜致癌知乎 编辑:程序博客网 时间:2024/05/17 09:29

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


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

表数据:


要实现的结果:



实现的sql:

<span style="font-size:24px;">select rpad('---', (level - 1) * 3, '---') || name as name, id  from t_nscreen_region start with id = 1connect by nocycle prior id = parent_id;</span>



其中函数理解:
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:用于填充的字符,可以不填,默认为空字符】






0 0
原创粉丝点击