这条SQL该怎么写?
表结构如下:部门表
部门ID 上级ID 部门 部门负责人 备注
1000 XXX公司 张三
1001 1000 销售部 李四
1002 1000 技术部 王二
1003 1002 开发组 小三
1004 1002 维护组 小四
1005 1000 财务部 赵五
XXX公司是部门的最上级,下面有销售部和技术部两部门,而技术部下面又有开发组和维护组两下属部门(实际情况肯定部门更多)
我现在要的到技术部以及次部门下属部门的所有记录,该怎么些?
要的结果如下:
1002 1000 技术部 王二
1003 1002 开发组 小三
1002 1002 维护组 小四数据库是10G XE
表结构如下:部门表
部门ID 上级ID 部门 部门负责人 备注
1000 XXX公司 张三
1001 1000 销售部 李四
1002 1000 技术部 王二
1003 1002 开发组 小三
1004 1002 维护组 小四
1005 1000 财务部 赵五
XXX公司是部门的最上级,下面有销售部和技术部两部门,而技术部下面又有开发组和维护组两下属部门(实际情况肯定部门更多)
我现在要的到技术部以及次部门下属部门的所有记录,该怎么些?
要的结果如下:
1002 1000 技术部 王二
1003 1002 开发组 小三
1002 1002 维护组 小四数据库是10G XE
解决方案 »
- Oracle 表空间
- sqlldr 可以用来给db link的table 装载数据吗?
- Oracle中如何把存进去的二进制文件转换成图片文件
- sybase的存储过程转换到oracle上的问题
- 请教一下关于group by的问题
- 急问:这条语句的作用,谢谢大虾们~~
- 请问在toad里怎样将一个表的所有数据删除啊,不是一条一条删,谢谢!
- oracle9i中如何启动enterprise manager 登陆到managerment server上?
- 【求助】大家帮忙看看这个触发器,在触发器中记录当前时间
- oracle转换java的时间戳
- proc问题,兄弟们来看看
- 如何把一个表的内容作为一个视图的字段?急!!!!在线等待
from 部门表
connect by prior 部门ID=上级ID
start with 部门表.部门='技术部'这是自连接的最简单的写法,如果有什么条件可在from后加上where条件.
from 部门表
where 部门='技术部'
or 上级ID>(select max(b.上级ID) from 部门表 b where b.部门='技术部')
start with
connect by
应该可以解决你的问题.
start with 部门ID='1002'
connect by prior 部门ID= 上级ID可以结帖了.
/