环境:8icreate table dali.dep(depid int,depname varchar2(10));
create table dali.emp(depid int,name varchar2(10));
insert into dali.dep values(100,'人力资源部');
insert into dali.dep values(101,'人事科');
insert into dali.dep values(102,'档案室');
insert into dali.dep values(200,'软件开发部');
insert into dali.dep values(201,'技术支持班');
insert into dali.dep values(202,'开发组');
insert into dali.emp values(201,'唐五');
insert into dali.emp values(201,'窦六');
insert into dali.emp values(102,'李四');
insert into dali.emp values(202,'黄七');
insert into dali.emp values(101,'王二');
insert into dali.emp values(101,'张三');

解决方案 »

  1.   

    语句:select flag||depname from (select ' ' flag,depid,depname from dali.dep where depid like '%00' union all select '   ',depid,depname from dali.dep where depid not like '%00' union all select '     ',depid,name from dali.emp) order by depid;
      

  2.   

    设计不合理,很麻烦。改变结构用BOM算法,很容易实现
      

  3.   

    Oracle9i中有没有方便这种查询的数据结构语言呢?
      

  4.   

    谢谢大力相助,按照你的方法实现了to Qihua_wu(小吴) :
    设计不合理,很麻烦。改变结构用BOM算法,很容易实现=====================================
    请问如何改变结构,可以谈谈BOM算法吗?
      

  5.   

    --特点存储好,查询速度慢
    create table tree(a int,b int);
    insert into tree  values (1,null);
    insert into tree  values (2,1);
    insert into tree  values (3,1);
    insert into tree  values (4,2);--特点存储冗余,查询速度快
    create table tree(a varchar2(50));
    insert into tree values('01');
    insert into tree values('01001');
    insert into tree values('01002');
    insert into tree values('01001001');
      

  6.   

    只要你的编码设计合理,你的查询就好多了!
    例如:
    一级id:100,200,300
    二级id:100100,100200,100300,
    三级id:100100100,100200100,100300100
    这样你就可以很容易的产生三层查询。
      

  7.   

    我对 pengdali(大力) 的这种算法很感兴趣,只需要一个字段,可以介绍一些如何查询已经实现方法吗?