gpt4 book ai didi

sql - 在 Derby 中一次更新多个列

转载 作者:行者123 更新时间:2023-12-02 00:45:57 24 4
gpt4 key购买 nike

DB2 支持这种语法:

UPDATE DEST D SET (AAA,BBB) = (
SELECT MAX(Z.AAA), MAX(Z.BBB) FROM OTHER O WHERE O.ID = D.ID
)

即我可以运行一个返回多个列的选择,并将结果复制到目标表(要更新的那个)的各个列中。

Derby 只允许语法:

UPDATE table-Name [[AS] correlation-Name]
SET column-Name = Value
[ , column-Name = Value} ]*
[WHERE clause]

这意味着当我需要以某种方式对选择的结果进行分组时,我可能会遇到问题。有没有比将更新拆分为两个语句或在 Java 中在本地循环中执行此操作(即提交数百万个 UPDATE 语句)更好的解决方案?

最佳答案

据推测,你可以这样做:

UPDATE DEST D
SET AAA = (SELECT MAX(Z.AAA) FROM OTHER O WHERE O.ID = D.ID),
BBB = (SELECT MAX(Z.BBB) FROM OTHER O WHERE O.ID = D.ID)

我没有说任何关于效率的事情——但它可能比将更新分成两个语句或在本地循环执行更有效。

关于sql - 在 Derby 中一次更新多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com