一个SQL语句问题

yuxuan 2003-05-01 08:22:09
有两张表
1、dep(depid,depname)用来存放部门信息,其中depid尾数是00的是一

级机构,非00的是二级机构
2、emp(depid,name)用来存放人员信息,其中depid是二级机构代码
两张表可以通过字段depid关联
请问:能否通过一条SQL语句实现三层显示,如:
人力资源部
人事科
王二
张三
档案室
李四
软件开发部
技术支持班
唐五
窦六
开发组
黄七

谢谢!不吝赐教
...全文
34 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxuan 2003-05-03
  • 打赏
  • 举报
回复
我对 pengdali(大力) 的这种算法很感兴趣,只需要一个字段,可以介绍一些如何查询已经实现方法吗?
pengdali 2003-05-02
  • 打赏
  • 举报
回复
--特点存储好,查询速度慢
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');
yuxuan 2003-05-02
  • 打赏
  • 举报
回复
谢谢大力相助,按照你的方法实现了

to Qihua_wu(小吴) :
设计不合理,很麻烦。改变结构用BOM算法,很容易实现

=====================================
请问如何改变结构,可以谈谈BOM算法吗?
BlueskyWide 2003-05-02
  • 打赏
  • 举报
回复
Oracle9i中有没有方便这种查询的数据结构语言呢?
suxiao 2003-05-02
  • 打赏
  • 举报
回复
只要你的编码设计合理,你的查询就好多了!
例如:
一级id:100,200,300
二级id:100100,100200,100300,
三级id:100100100,100200100,100300100
这样你就可以很容易的产生三层查询。
Fred_Mark 2003-05-01
  • 打赏
  • 举报
回复
up
Qihua_wu 2003-05-01
  • 打赏
  • 举报
回复
设计不合理,很麻烦。改变结构用BOM算法,很容易实现
pengdali 2003-05-01
  • 打赏
  • 举报
回复
语句:

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;
pengdali 2003-05-01
  • 打赏
  • 举报
回复
环境:8i

create 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,'张三');

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧