如果表B中不存在Value,则将值替换为null -
表A员工
ID,NAME
1,Sam
2,Jon
3,Nick
表B Sallery
ID,Sallery
1,500
2,1000
期望的结果:
NAME,Sallery
Sam,500
Jon,1000
Nick,
到目前为止我得到了什么:
Select A.NAME,
NVL(Select Sum(B.Amount) from Sallery B where B.ID=A.ID ,null)
From Employees A
我想避免使用“Case When exists”表达式
谢谢
答案 0 :(得分:2)
您应该使用left outer join
:
select a.name
, sum(b.amount) amount
from employees a
left
outer
join sallery b
on b.id = a.id
如果sum
中没有行,null
将返回b
。
答案 1 :(得分:1)
SELECT B.name, A.sal
FROM (SELECT SUM(NVL(salary, 0)) sal, id
FROM salary
GROUP BY id)A, Employees B
WHERE A.id=B.id