我一直试图让这个查询工作时间最长,我想也许我没有正确看待它。基本上我有一个表中的记录,我试图找到它们的数据冲突的位置。示例我有一个不是主键的字段,但我想查找其他列数据不相同的所有事件 例: 所以基本上如果我有两个johns并且它们都有不同的地址我想更新我的表以使它们具有相同的,即使一个John有一个空地址。我想出了
UPDATE Table
SET Address =Address
SELECT * FROM Table WHERE Address != Address
但这似乎不起作用
答案 0 :(得分:1)
UPDATE t1
SET address = t2.address
FROM YourTable t1
INNER JOIN YourTable t2
ON t1.Name = t2.Name
WHERE t1.PrimaryId <> t2.PrimaryId
AND t1.address IS NULL
AND t2.address IS NOT NULL
答案 1 :(得分:0)
假设您要使用Table1值更新Table2,并且在两个表上都存在一个名为ID
的列,用于链接数据:
UPDATE t2
SET t2.Address = t1.Address
FROM Table2 as t2
INNER JOIN table1 t1
ON t1.Id = t2.Id
更新:
根据您的评论,如果您只想更新table2中的空值,请使用:
UPDATE t2
SET t2.Address = t1.Address
FROM Table2 as t2
INNER JOIN table1 t1
ON t1.Id = t2.Id
WHERE t2.Address is null