Tim*_*fey 4 t-sql sql-server sql-server-2008 sql-update
想象一下有一张桌子:
declare @tab table (id int, val int)
insert into @tab(id, val)
values (1,10),(2,20),(1,15)
Run Code Online (Sandbox Code Playgroud)
需要更新表并为每个id设置表中具有相同ID的所有值的总和
update @tab
set val = (select sum(val) from @tab tab where tab.id = id)
Run Code Online (Sandbox Code Playgroud)
最后一个查询的where子句始终为true,因此每行将包含表中所有值的总和.
如果表是真的(不是表变量),我会使用表名引用它:
update realtab
set val = (select sum(val) from @tab tab where tab.id = realtab.id)
Run Code Online (Sandbox Code Playgroud)
可以对表变量进行这样的更新吗?
尝试使用UPDATE ... FROM
update t
set val = (select sum(val) from @tab tab where tab.id = t.id)
FROM @tab t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13633 次 |
| 最近记录: |