2

Derby 不支持这种语法:

UPDATE x SET (col1, col2, ...) = ( SELECT a,b,... FROM y ... )

(见这个错误)。除了在 Java 中创建一个循环来执行选择并发送 N 个更新之外,还有其他人有解决方法吗?

[编辑]请注意,我有 50 列和一个复杂的条件(与 x 和 EXISTS 等连接)。所以我想避免重复 SELECT 50 次,请:)

4

2 回答 2

2

我也会这样做,是 rbobby siad,但我也是 MSSQL 人。

你有没有尝试过:

UPDATE x 
SET (col1)= ( SELECT a FROM y where y.fkfield = x.pkidfield),
(col21)= ( SELECT b FROM y where y.fkfield = x.pkidfield), )
于 2009-03-04T19:36:00.583 回答
0

我不确定那是有效的 sql(我更像是一个 MS SQL 人,所以我可能会走得很远)。

通常我会这样做:

update Orders
set Orders.Code = OtherOrders.Code,
    Orders.Name = OtherOrders.Name
from Orders inner join Orders as OtherOrders 
    on OtherOrders.OrderId = Orders.OrderId
于 2009-03-04T16:21:59.893 回答