我想从oracle中的子记录值更新父记录

时间:2016-12-16 15:09:40

标签: oracle

我希望更新下表

{{1}}

更新后,表格应如下所示

{{1}}

我必须在oracle中更新超过200,000个表的记录。任何帮助将非常感谢

2 个答案:

答案 0 :(得分:1)

您可以使用MERGE

执行更新
MERGE INTO table_name dst
USING
(
  SELECT   col2,
           MIN( col3 ) AS col3
  FROM     table_name
  GROUP BY col2
  HAVING   MIN( col3 ) = MAX( col3 )
) src
ON ( dst.col2 IS NULL AND dst.col1 = src.col2 )
WHEN MATCHED THEN
  UPDATE SET col3 = src.col3 WHERE col3 IS NULL;

HAVING列可能具有col3列的不同值时,<p>test</p> <p>test</p> <p>test</p> <p>test</p> <p>test</p> <p>test</p> <div id="comments_area" next="/user/login">Null</div> 行会阻止更新。

答案 1 :(得分:0)

UPDATE yourTable t1
SET col3 = (SELECT DISTINCT t2.col3 FROM yourTable t2 WHERE t1.col1 = t2.col2)
WHERE col3 IS NULL

此解决方案假定col1中显示的子条目始终共享一个公共父级。如果没有,那么我的查询将失败,但那么您当前的方法将更新您的表。