【发布时间】:2021-08-15 22:31:32
【问题描述】:
我想在自联接的帮助下替换 列中的空值propertyaddress。但它运行了三十多分钟没有返回,我不得不取消任务。谁能帮帮我?
MERGE
INTO housedata a
USING
(select distinct b.id
, b.parcelid
, b.propertyaddress
, NVL(a.propertyaddress, b.propertyaddress)
from housedata a
,housedata b
-- WHERE a.propertyaddress is null
) src
ON (a.parcelid = src.parcelid and a.id != src.id)
WHEN MATCHED THEN
UPDATE
SET propertyaddress = NVL(a.propertyaddress,src.propertyaddress)
WHERE a.propertyaddress is null
【问题讨论】:
-
“它不起作用”是什么意思?它有效,但不会产生您想要的结果。它根本不起作用。它引发了一个错误(如果是,是哪一个)?示例数据可能会帮助我们帮助您。
-
@Littlefoot 谢谢。我的意思是 Query 运行超过 30 分钟,我必须取消任务。
-
这是一次性任务,还是经常发生的任务?您预计需要多长时间?您能否提供一份关于您的运行的 SQL 监视器报告。
-
调优 SQL 涉及很多方面。我们需要更多细节。请阅读this thread on asking Oracle tuning questions。
标签: sql oracle query-optimization