中国流行音乐组合:SQL部门下级问题

来源:百度文库 编辑:高校问答 时间:2024/05/06 02:28:58
dept_ID 部门ID号 唯一标识
gradeID 部门级别 1代表一级部门,2代表二级部门...
deptNA 部门名称 部门名称
homedeptID 上级部门ID号 标识所归属部门
homedeptID 表示为第一级部门

dept_ID gradeID deptNA homedeptID
2 1 董事会 0
3 1 顶级部门 0
4 2 市场部 2
5 2 技术部 2
6 2 办公室 2
7 3 技术1部 5
8 3 技术2部 5
9 3 技术3部 5
10 3 市场1部 4
11 3 市场2部 4

如何循环显示出来
1董事会
2市场部
3市场1部
3市场2部
2技术部
3技术1部
3技术2部
3技术3部
1顶级部门

这样子,SQL语句怎么写啊?谁写出来谁厉害~!
我佩服啊~
注意:下级部门会无限

Oracle数据库有自带的树查询语句,可用以下语句实现你的要求

select * from 表
start with gradeID=1
connect by prior gradeID = homedeptID

语法参考:
http://devaux.blogchina.com/4493809.html
转换成sql请参考:
http://topic.csdn.net/t/20031125/09/2491428.html

这种方式一条语句实现不了,只能用循环来实现,你可以参考一下我的这篇文章:http://ronggang.spaces.live.com/blog/cns!A3A7B24004DD9126!243.entry

要用递归
可写成存储过程