select id,parent_id,name,level,connect_by_isleaf,connect_by_iscycle,replace(sys_connect_by_path(id,'|'),'|','')
from table connect by nocycle prior id=parent_id start with id='xxx' order sibings by id
函数一:connect by prior start with
标准迭代查询,可以从上级到最底层,也可以从底层到最上级,主要是id=parent_id 或parent_id=id的区别
函数二:replace(col,str1,str2)
基本的字符串替换函数,将col列中的str1替换为str2
函数三: sys_connect_by_path(id,'|')
获取全节点路径,以|分割
字段: level, connect_by_isleaf, connect_by_iscycle, nocycle,sibings
level 层级,默认从1开始
connect_by_isleaf 判断是否叶子节点,0—否,1—是
connect_by_iscycle 判断是否有循环存在,存在则为1,否则为0
nocycle 迭代时,按不循环查询
sibings 按照同级节点排序
备注:该方法适用于oracle 9i及以上版本,以及db2 for i系列产品,其它暂不适用。
from table connect by nocycle prior id=parent_id start with id='xxx' order sibings by id
函数一:connect by prior start with
标准迭代查询,可以从上级到最底层,也可以从底层到最上级,主要是id=parent_id 或parent_id=id的区别
函数二:replace(col,str1,str2)
基本的字符串替换函数,将col列中的str1替换为str2
函数三: sys_connect_by_path(id,'|')
获取全节点路径,以|分割
字段: level, connect_by_isleaf, connect_by_iscycle, nocycle,sibings
level 层级,默认从1开始
connect_by_isleaf 判断是否叶子节点,0—否,1—是
connect_by_iscycle 判断是否有循环存在,存在则为1,否则为0
nocycle 迭代时,按不循环查询
sibings 按照同级节点排序
备注:该方法适用于oracle 9i及以上版本,以及db2 for i系列产品,其它暂不适用。