如果表B中不存在值,则将值替换为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我希望避免使用“存在时的情况”表达式。
谢谢
发布于 2014-09-09 07:31:32
为此,您应该使用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。
发布于 2014-09-09 07:39:33
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.idhttps://stackoverflow.com/questions/25738891
复制相似问题