求教关于找汇报上级的逻辑,如果上级职位没有人在职,就显示空而不是不显示

weixin_43138857 2018-09-05 03:08:32
求教
表名-JOB
emplid reportsto position
甲 100 101
乙 101 102
丙 102 103

SELECT A.EMPLID ,A.REPORTS_TO,B.EMPLID
FROM PS_JOB A ,PS_JOB B
WHERE B.POSIION_NBR=A.REPORTS_TO

实际结果
乙 101 甲
丙 102 乙

想要结果
甲 100
乙 101 甲
丙 102 乙
...全文
215 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
nayi_224 2018-09-05
  • 打赏
  • 举报
回复
with tab1 as (
select '甲' a, 100 b, 101 c from dual union all
select '乙' a, 101 b, 102 c from dual union all
select '丙' a, 102 b, 103 c from dual
)
select t1.a, t1.b, t2.a from tab1 t1, tab1 t2
where t1.b = t2.c(+)
order by t1.b
;

with tab1 as (
select '甲' a, 100 b, 101 c from dual union all
select '乙' a, 101 b, 102 c from dual union all
select '丙' a, 102 b, 103 c from dual
)
select distinct t1.a, t1.b, first_value(prior t1.a) over(partition by t1.a order by level desc) cc
from tab1 t1
connect by prior t1.c = t1.b
and level <= 2
order by t1.b
;

1,617

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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