我希望更新下表
{{1}}
更新后,表格应如下所示
{{1}}
我必须在oracle中更新超过200,000个表的记录。任何帮助将非常感谢
答案 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
中显示的子条目始终共享一个公共父级。如果没有,那么我的查询将失败,但那么您当前的方法将更新您的表。