3
DB2支持此语法:在德比一次更新多个列
UPDATE DEST D SET (AAA,BBB) = (
SELECT MAX(Z.AAA), MAX(Z.BBB) FROM OTHER O WHERE O.ID = D.ID
)
即我可以运行一个选择返回多列,并将结果复制到目标表的各列(一更新)。
德比只允许语法:
UPDATE table-Name [[AS] correlation-Name]
SET column-Name = Value
[ , column-Name = Value} ]*
[WHERE clause]
这意味着我可以碰到问题时,我需要组选择的结果以某种方式。是否有更好的解决方案,而不是将更新分成两个语句,或者是在Java环路中进行本地化(即提交数百万条UPDATE语句)?
我担心副作用;当select子句更复杂时,这两个语句可能会产生不同的结果吗? – 2009-02-26 08:06:01