请教一个实际问题
政府部门排序,以前是按照ID排序的
但是现在想实现这样的排序
id   deparentname  parentuid   orderid 
编号  部门名称     上级编号     排序字段我想把部门按照
1   管委会   0    1
10  办公室   1    1
19  打印科   10   1
20  管理所   19   2
11  行政科   1    2
2   教育局   0    2
13  教育科   2    1
15  计划科   2    2
14  执行科   2    3
3   民政局   0    3
25  信访科   3    1 管委会
    办公室
        打印科
            管理所
    行政科
教育局
    教育科
    计划科
    执行科
民政局
    信访科请问这个多层排序的SQL语句怎么写?很急!求解决语句

解决方案 »

  1.   

    select departmentname from 表名 connect by prior id=parentid start with parentid=0;
      

  2.   


    select lpad(' ', (level - 1) * 5, ' ') || deparentname
      from (select * from tab_name order by orderid) 
     start with parentuid = 0 
    connect by prior id = parentuid;
      

  3.   

    正解。
    给个另类的表示方法
    select a,b ,substr(sys_connect_by_path(deparentname,'/'),2) from doer03 
    start with parentuid = 0 
    connect by prior id = parentuid;
    能得到各级的全路径
      

  4.   

    确实没什么难度 类似这样树状结构的问题基本都是start with connect by prior 来解决
    如果有格式 利用level 来解决。
    楼上s正解