oracle in || like 无能为力,还是小弟无能为力

现在有员工表,部门表
而部门下又有子部门,部门与子部门之间的关系类似:
--一级部门 代码:001
--二级部门 00101
--二级部门 00102
--三级部门 0010201
--一级部门 002
-- 二级部门 00201
--三级部门 0020101

就类似上面的这种关系吧
而且员工和部门之间是多对多关系

现在问题是 如何通过员工代码,来获取期部门编号,及其所有子部门编号,

select *
from dept(部门表)
where deptno
[color=red]like 或者in 都无法达到效果/color
where eno(员工编号)
)||'%'
小弟不才,求指教?

3个回答

instr(str1, str2) 如果str1包含str2,则返回包含的str2的开始位置,如果不包含,返回0

你的中间表expldept结构是什么样的?存的是员工编号和父部门吗?

如果你的部门代码是3位、子部门代码是2位,可以这样写
[code="sql"]SELECT t1.deptno,t1.deptname
FROM dept t1,
(SELECT t.deptno
FROM expldept t
WHERE t.eno = 'e01') t2
WHERE instr(t1.deptno, t2.deptno) > 0[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐