t-sql 合并两个表并替换空值
Posted
技术标签:
【中文标题】t-sql 合并两个表并替换空值【英文标题】:t-sql merging two tables and replace null values 【发布时间】:2022-01-24 02:45:39 【问题描述】:我有这两个表,我想比较一下表2中是否有空值,如果有,将表1中的现有值替换为表2中的空值(通过作为主键的代码列)。
Table 1
Code Name Points
1 Juan Perez 10
2 Marco Salgado 5
3 Carlos Soto 9
4 Alberto Ruiz 12
5 Alejandro Castro 5
10 Jonatan Polanco 0
11 JD NULL
Table 2
Code Name Points
1 Juan Perez 10
2 Marco Salgado 5
3 Carlos Soto 9
4 Alberto Ruiz 12
5 Alejandro Castro 5
10 Null 0
11 JD 9
生成的表格应如下所示
Table 2
Code Name Points
1 Juan Perez 10
2 Marco Salgado 5
3 Carlos Soto 9
4 Alberto Ruiz 12
5 Alejandro Castro 5
10 Jonatan Polanco 0
11 JD 9
【问题讨论】:
我尝试过合并和选择子句,但没有。我很感激你的帮助 不“将表 1 中的现有值替换为表 2 中的空值”意味着您的预期结果应包含'10'
/NULL
/'0'
,而不是 '10'
/'Jonatan Polanco'
/'0'
? '11'
/'JD'
/NULL
行不应该保持不变吗?请向我们展示您尝试过的方法并解释哪些方法不起作用。
【参考方案1】:
如果您尝试更新 Points 列中具有空值的行,您只需连接两个表并添加 where 子句以将行限制为要更新的行。像这样的
UPDATE t2
SET Points = t.Points
FROM table_1 t
JOIN table_2 t2
ON t.code = t2.code
WHERE t2.Points IS NULL
【讨论】:
以上是关于t-sql 合并两个表并替换空值的主要内容,如果未能解决你的问题,请参考以下文章