一道oracle面试题

嗷呜的善泽融 2021-05-08 07:34:20
表1:部门关系表
father_code child_code
2 5
2 6
3 7
3 8
4 9
4 10


表2:部门详情表

FATHER_CODE NAME
2 部门2
3 部门3
4 部门4
5 科1
6 科2
7 科1
8 科2
9 科1
10 科2

表3:

编号 部门编号 科室编号
2 部门2
5 部门2 科1
6 部门2 科2
3 部门3
7 部门3 科1
8 部门3 科2
10 部门4 科2
4 部门4
9 部门4 科1


------------------------------------------------
根据表1和表2,得出表3的结果(所有字段都是varchar2类型)


参考答案:
SELECT
C.编号
,C.部门编号
,C.科室编号
FROM(
SELECT

B.FATHER_CODE 编号
,CASE WHEN B.FATHER_CODE IN (SELECT FATHER_CODE FROM DEPT_A)
THEN B.NAME
ELSE (SELECT
C.NAME
FROM DEPT_B C WHERE C.FATHER_CODE=
(SELECT A.FATHER_CODE FROM DEPT_A A WHERE A.CHILD_CODE=B.FATHER_CODE))
END 部门编号
,CASE WHEN B.FATHER_CODE IN (SELECT FATHER_CODE FROM DEPT_A)
THEN NULL
ELSE B.NAME
END 科室编号
FROM DEPT_B B
)C
ORDER BY C.部门编号,C.编号;
...全文
181 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17,086

社区成员

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

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