我有一张包含数据的表格。表格数据如下:
ID | Name | Age
----------------
1 | A | 24
2 | B | 25
3 | C | 30
4 | D | 46
5 | E | 35
6 | F | 26
7 | G | 30
现在,我想要更新某些ID的年龄列,以便最终结果如下。
ID | Name | Age
----------------
1 | A | 24
2 | B | 22
3 | C | 35
4 | D | 50
5 | E | 27
6 | F | 26
7 | G | 30
我更新了ID为2、3、4、5的行。
如何通过单个T-SQL查询实现此结果?这只是一个示例表。在实际情况中,它是一张拥有超过1500数据的表,因此逐个更新行会消耗很多时间。
我找到了一个解决方案,但我无法将其添加为答案。所以我决定编辑自己的问题并放置答案。请参考以下网址获取更多信息:
www.stackoverflow.com/questions/16932526/…
UPDATE e
SET age = t.age
FROM table e
JOIN ( VALUES
(1, 26),
(2, 30),
(3, 35) )
t (id, age) ON t.id = e.id
UPDATE
语句和JOIN
,即可更新所有相关行。无需循环、光标或其他RBAR(逐行煎熬)处理! - marc_s