我有两个表Source和Destination。如果Destination Name列为null或为空,则需要用Source表的name列更新Destination表中的name列。但是不知何故Case语句不能正常工作
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发布于 2019-11-26 20:46:34
您的空筛选器应该类似于d.name = '' or d.name is null。而且你也不需要使用case函数。您已经有了针对空值的筛选器。
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发布于 2019-11-26 20:44:45
这个怎么样?
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值。
https://stackoverflow.com/questions/59051183
复制相似问题