首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server case语句,其中包含null

问SQL Server case语句,其中包含null
EN

Stack Overflow用户
提问于 2019-11-26 20:39:17
回答 2查看 97关注 0票数 0

我有两个表Source和Destination。如果Destination Name列为null或为空,则需要用Source表的name列更新Destination表中的name列。但是不知何故Case语句不能正常工作

代码语言:javascript
复制
Update d
Set name = Case when nullif(d.name,'') is null then s.name else null end
From destination d join
Source s on d.id = s.id
Where nullif(d.name,'') is null
EN

回答 2

Stack Overflow用户

发布于 2019-11-26 20:46:34

您的空筛选器应该类似于d.name = '' or d.name is null。而且你也不需要使用case函数。您已经有了针对空值的筛选器。

代码语言:javascript
复制
Update d
Set name = s.name
From destination d join
Source s on d.id = s.id
Where d.name = '' or d.name is null
票数 1
EN

Stack Overflow用户

发布于 2019-11-26 20:44:45

这个怎么样?

代码语言:javascript
复制
UPDATE destination d
SET d.name = COALESCE(NULLIF(d.name,''), s.name)
FROM source s 
WHERE d.id = s.id

假设id是您的PK,这将用来自source的数据更新d中的行,这些数据具有匹配的id值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59051183

复制
相关文章

相似问题

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