如何将A表中字段CS2中结果更新到B表中XY2字段中?
A表
CS1 CS2
1 'A'
2 'B'
3 'C'
B表
XY1 XY2
1 ''
2 ''
3 ''
4 ''
请问各位高手有多少种方法可以做到
------最佳解决方案--------------------但是单纯从你这个例子来说,绝对比循环性能好。对于sql,不要包有面向过程的思想去做,要用面向集合的思路去做
------其他解决方案--------------------update b.xy2=a.cs2
from tb1 as a inner join tb2 as b
on a.cs1=b.xy1
------其他解决方案--------------------感谢楼上的starseeker7
如果这个用循环来做是不是有点小题大做啊?
------其他解决方案--------------------首先,你要说清楚两表的关联字段。我猜测是cs1和xy1,但是不排除还有别的字段关联。
update b
set b.xy2=a.cs2
from b inner join a on a.cs1=b.xy1
至于方法,要那么多干嘛?能实现就好。
------其他解决方案--------------------你先说出用循环的理由?
------其他解决方案--------------------感谢DBA_Huangzj
循环应该可以处理更复杂的语句,如同时更新处理更多的表
------其他解决方案--------------------额...同时更新更多的表用不着循环啊。具体看你的需求。
------其他解决方案--------------------如果就这两个表来看,如果A表中的字段如下
1 100.00
1 200.00
2 100.00
2 100.00
2 100.00
需要将A表中的相同字段累计求和,然后再更新B表,如何处理呢?谢谢DBA_Huangzj
------其他解决方案--------------------2005以后的做法:
with cte(CS1, CS2)
as
(select cs1,sum(cs2) cs2 from A group by cs1)
update b
set b.xy2=a.cs2
from b inner join cte a on a.cs1=b.xy1
2000的做法,把with那部分换成临时表
------其他解决方案--------------------还是要创建临时表
------其他解决方案--------------------好的,谢谢您的指导!多谢!结贴