如何更新 TableA
中的列在另一个表中找到的值,Table B
,取决于另一列,Type
, 在 TableA
例如。
表A
Location Type Value
USA Dog 20
UK Cat 30
表 B
Dog Cat Rabbit
50 70 100
逻辑:
tableA.Value = Dog
然后更新 TableA.Value = TableB.Dog
tableA.Value = Cat
然后更新 TableA.Value = TableB.Cat
tableA.Value = Rabbit
然后更新 TableA.Value = TableB.Rabbit
注意:只有 3 个选项,所以硬编码是可以的。
结果
表A
Location Type Value
USA Dog 50
UK Cat 70
最佳答案
怎么样的东西
UPDATE TableA
SET Value =
CASE Type
WHEN 'DOG' then B.Dog
WHEN 'CAT' then B.Cat
WHEN 'RABBIT' then B.Rabbit
ELSE Value
END
FROM TableB b
SQL Fiddle DEMO
关于sql-server-2008 - SQL Server - 根据另一列值更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18577827/