我有两个表:表“组件”和表“Something”。
在两个表中都有一个“单元”列和一个“代码”列,对于同一篇文章,两个表中的代码相同。
这两个表来自不同的环境,在许多记录中,单位都是以不同的方式编写的。我的意思是“kg - KG”,“千克 - 公斤”。很乱! 我想手动运行一些查询来调整大部分差异。
Components Something
Code----Unit Code Unit
1 kg 1 kilogram
2 kg 2 kg
3 kg 3 kilogram
在上面的情况下,查询应该用“kg”替换表“something”中的所有“千克”。表格中的替换“东西”单位值“千克”,其中表格成分为“kg”,代码是一样的。 我知道我不会,但我不知道如何写它。你能帮忙吗?
答案 0 :(得分:1)
update Something
set Something.Unit = Components.Unit
from Something
join Components
on Something.Code = Components.Code
and Components.Unit = 'kg'
and Something.Unit = 'kilogram'
答案 1 :(得分:0)
您可以使用UPDATE JOIN
:
UPDATE Something
SET
Unit = S.Unit
FROM
Something S
JOIN
Components C ON
(C.Code = S.Code)
这会将Something.Unit
设置为Components.Unit
的值,使用代码作为匹配。
注意:没有必要检查单位是否不同,因为目标是使它们相等。添加<>
子句会减慢查询速度,因为不会使用任何索引。