在Oracle中,可以选择数据集并将其用于更新,就像在Merge语句中一样.
我正在寻找类似的东西
USING
(
SELECT a, b, c FROM t
)
UPDATE t1
SET t1.x = t.a,
t1.y = t.b;
Run Code Online (Sandbox Code Playgroud)
这听起来像你只是想
UPDATE t1
SET (x, y) = (SELECT a, b
FROM t
WHERE t.some_column = t1.some_column);
Run Code Online (Sandbox Code Playgroud)
如果您只想更新T1中的行,如果T中有匹配的行
UPDATE t1
SET (x, y) = (SELECT a, b
FROM t
WHERE t.some_column = t1.some_column)
WHERE EXISTS (
SELECT 1
FROM t
WHERE t.some_column = t1.some_column );
Run Code Online (Sandbox Code Playgroud)
如果SELECT from T返回单行,则可以省略连接两个表的WHERE子句.