我需要根据来自另外 2 个表的连接来更新一个主表。任何人都可以在这里为我提供最佳方法,因为我需要使用此更新更新数百万条记录。
问问题
121 次
2 回答
0
我认为您需要的是Correlated update语句,请查看此链接Oracle related UPDATE
于 2013-07-17T18:10:58.437 回答
0
也许这个例子会有用:
CREATE TABLE A(
ID INT,
STR VARCHAR2(10));
CREATE TABLE B(
ID INT,
STR VARCHAR2(10));
INSERT INTO A VALUES(1,'A1');
INSERT INTO A VALUES(2,'A2');
INSERT INTO A VALUES(3,'A3');
INSERT INTO B VALUES(1,'B');
INSERT INTO B VALUES(3,'C');
INSERT INTO B VALUES(4,'D');
/*HERE THE QUERY!!*/
MERGE INTO A
USING ( select ID, STR
from B ) B
ON ( A.ID = B.ID )
WHEN MATCHED THEN
UPDATE SET A.STR = B.STR;
这里有其他查询,但可能会有 NULL 值的问题(试试这里):
UPDATE A
SET STR = (
SELECT STR
FROM B
WHERE A.ID = B.ID);
你可以在这里试试
于 2013-07-17T17:40:08.900 回答