数据如下:
  id   jobName  superiorJobId
------------------------------------
 1234   局长   
 567    副局长1  1234
 789    副局长2  1234
 911    队长1    567
 511    队长2    789
 611    组长2    511显示效果如下:
sulperiorJobId superiorJobName jobName jobid  
------------------------------------------------
  1234             局长         副局长1  567
  1234             局长         副局长2  789
  1234             局长         队长1    911
  1234             局长         队长2    511
  567              副局长1      队长1    911  
  789              副局长2      队长2    511  
  789              副局长2      组长2    611
  511              队长2        组长2    611  
SQL语句如何写,每个树的节点排序全部查出来,急求

解决方案 »

  1.   

    create table test(
      id number(18,0),
      jobname varchar2(30),
      superiorjobid number(18,0)
    );insert into test(id,jobname,superiorjobid) values(1234, '局长', NULL);
    insert into test(id,jobname,superiorjobid) values(567, '副局长1', 1234);
    insert into test(id,jobname,superiorjobid) values(789, '副局长2', 1234);
    insert into test(id,jobname,superiorjobid) values(911, '队长1', 567);
    insert into test(id,jobname,superiorjobid) values(511, '队长2', 789);
    insert into test(id,jobname,superiorjobid) values(611, '组长2', 511);COMMIT;with a as(select level lv, id, jobname, superiorjobid
               from test
              start with superiorjobid is null
            connect by prior id=superiorjobid)
    select a1.id as sulperiorJobId, a1.jobname sulperiorJobName, a2.id, a2.jobname
    from a a1 full join a a2 on a1.id=a2.superiorjobid
    order by a1.lv;
      

  2.   

    这个问题困扰我半天,谢谢各位大侠的帮忙!minitoy
    帮我解决了