首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle SQL: NVL功能

Oracle SQL: NVL功能
EN

Stack Overflow用户
提问于 2014-09-09 07:26:08
回答 2查看 1.3K关注 0票数 0

如果表B中不存在值,则将值替换为null-

表A雇员

代码语言:javascript
复制
ID,NAME
1,Sam               
2,Jon
3,Nick 

表B Sallery

代码语言:javascript
复制
ID,Sallery
1,500
2,1000

期望的结果:

代码语言:javascript
复制
NAME,Sallery
Sam,500
Jon,1000
Nick,

到目前为止我得到了什么:

代码语言:javascript
复制
 Select A.NAME, 
        NVL(Select Sum(B.Amount) from Sallery B where B.ID=A.ID  ,null)
 From Employees A

我希望避免使用“存在时的情况”表达式。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-09 07:31:32

为此,您应该使用left outer join

代码语言:javascript
复制
select a.name
,      sum(b.amount) amount
from   employees a 
left
outer
join   sallery b
on     b.id = a.id

如果sum中没有行,则null将返回b

票数 2
EN

Stack Overflow用户

发布于 2014-09-09 07:39:33

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25738891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档