我有下面的合并查询,我想更新日期和perfromnce问题我使用ROWID
逻辑。合并使用更新插入新行
但我想知道它是否插入新行?我只想更新表TEST_GRP
,并且不想插入任何新行。
因为我第一次使用ROWID
逻辑我真的不确定它是插入新行还是只更新表。
MERGE INTO TEST_GRP tgt
USING (SELECT ID,
ROWID r_id,
row_number() over (partition by ID ORDER BY DT_DATE) rn
FROM TEST_GRP) src
ON (tgt.rowid = src.r_id AND src.rn = 1)
WHEN MATCHED THEN
UPDATE SET DT_DATE = to_date('01.01.2017', ''dd.mm.yyyy'')
WHERE DT_DATE != to_date('01.01.2016', ''dd.mm.yyyy'')
and DB_NAME = 'ARD';
我很好奇为什么日期在你的更新中与where子句不同。 “除非日期为01.01.2016,否则更新至01.01.2017”。 –