4

如何更新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
4

1 回答 1

6

像这样的东西怎么样

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 小提琴演示

于 2013-09-02T17:11:58.930 回答