我有下面的合併查詢,我想更新日期和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」。 –