父子项--求序号1.1

SELECT LPAD(' ', 6 * level - 6) || substr(SYS_CONNECT_BY_PATH(RK, '.'), 2) FULLPATH,  
       T.ID,
       T.PARENTID,
       T.PROJECTNAME
  FROM (SELECT RANK() OVER(PARTITION BY P.PARENTID ORDER BY P.ID) RK, P.*
          FROM V_GETPLANPROJECTS P
         WHERE P.PROJECTYEAR = 2010) T
CONNECT BY PRIOR T.ID = T.PARENTID
 START WITH T.PARENTID = 0
 ORDER SIBLINGS BY T.RK

 

这是个一个 分组树的写法

出现结果会是 1。1

1.2

1.3.1

1.4

2.1

3.1

 

等等;输入是只有2个字段,Id,parent id父子项;

 

这段代码,1先对需要分组字段,进行分组加序号,

2然后对序号进行全路径查询,去除首点号;

你可能感兴趣的:(父子)