首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >INNER if null列

INNER if null列
EN

Stack Overflow用户
提问于 2017-12-11 16:06:16
回答 4查看 1.7K关注 0票数 2
代码语言:javascript
复制
x table 
id - name   - balance
1 - test    - 500
2 - test 2  - 400
3 - test 3  - 300

y table
idx - idy - name
1   - null
2   - 5
3   - null
4   - 6

SELECT x.Name, SUM(x.Balance)
FROM x
INNER JOIN y ON ???

if IS NULL y.idy ON (x.id = y.idx)
ELSE ON (x.id = y.idy)

我的英语不足以说出这个问题。但是我的问题是可以理解的

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-12-11 16:17:37

您还可以尝试使用ANSI SQL标准coalesce()函数来检查null

代码语言:javascript
复制
SELECT x.Name, SUM(x.Balance) [Balance] FROM x
join y ON coalesce(y.idy, y.idx) = x.id
group by x.Name

结果:

代码语言:javascript
复制
Name    Balance
test    500
test 3  300
票数 1
EN

Stack Overflow用户

发布于 2017-12-11 16:10:49

SQL HERE

您可以像下面这样使用ISNULL

代码语言:javascript
复制
SELECT x.Name, SUM(x.Balance)
FROM x
INNER JOIN y ON x.id = isnull(y.idy, y.idx)
group by x.Name
票数 1
EN

Stack Overflow用户

发布于 2017-12-11 16:10:39

布尔逻辑如下所示:

代码语言:javascript
复制
ON (y.idy IS NULL AND x.id = y.idx) OR (x.id = y.idy)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47748659

复制
相关文章

相似问题

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