原帖由 sanfenzh 于 2011-3-9 17:32 发表
这不只三个级别啊,我只是举例,可能有6到7个级别
LZ其实就是一个行转列, 但是最终又多少列是未知的。
基于以下的SQL语句写一个procedure, 具体如何写可以参照本开发版的精华贴关于行转列的所有方法!
SQL> select level ln,
2 id,
3 sys_connect_by_path(name, ',') path
4from tt
5start with parentid is null
6connect by prior id = parentid
7/
LN ID PATH
---------- ---------- --------------------------------------------------------------------------------
1 1001 ,总经理
2 1002 ,总经理,副总经理1
3 1004 ,总经理,副总经理1,部门经理1
3 1005 ,总经理,副总经理1,部门经理2
2 1003 ,总经理,副总经理2
3 1006 ,总经理,副总经理2,部门经理3
3 1007 ,总经理,副总经理2,部门经理4
7 rows selected |