Oracle中SYS_CONNECT_BY_PATH函数的使用
在Oracle中,SYS_CONNECT_BY_PATH函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示。
sys_connect_by_path(字段名, 2个字段之间的连接符号),注意这里的连接符号不要使用逗号,oracle会报错,如果一定要用,可以使用replace替换一下,
方法如下 REPLACE(字段名,原字符,',')。
还有,这个函数使用之前必须先建立一个树,否则无用。
还有,这个函数使用之前必须先建立一个树,否则无用。
select length(mc),mc,length( replace(mc,'>','')),length( replace(mc,'>',''))-2 from
( select SYS_CONNECT_BY_PATH(ljsbmc,'>') as mc from SB_LJSB
start wITh ljsbid IN('HTB38CFAB6B63922CAB5D6A29A9933EDE5','HTD90254AF31C18C9F8BAD890F6FEC155C')
connect by prior fjid=ljsbid) t
( select SYS_CONNECT_BY_PATH(ljsbmc,'>') as mc from SB_LJSB
start wITh ljsbid IN('HTB38CFAB6B63922CAB5D6A29A9933EDE5','HTD90254AF31C18C9F8BAD890F6FEC155C')
connect by prior fjid=ljsbid) t
示例: