我必須在表target_table中插入/更新某些RECORDS。這些記錄來自一個source_table。想要在oracle sql中插入/更新MERGE語句中添加一些條件
我正在使用MERGE在target_table中進行更新/插入。查詢如下
MERGE
INTO target_table tgt
USING source_table src
ON (src.column1 = tgt.column1 and
src.column2 = tgt.column2)
WHEN MATCHED
THEN
UPDATE
SET tgt.column3= src.column3,
tgt.column4 = src.coulmn4
WHEN NOT MATCHED
THEN
INSERT (tgt.column1,
tgt.column2,
tgt.column3,
tgt.column4)
VALUES (src.coulmn1,
src.coulmn2,
src.coulmn3,
src.coulmn4);
我想在更新時添加一些特定的條件。
IF target_table.column3 in (val1','val2)
那麼只應該有更新,否則沒有更新或插入。
感謝您的答覆。我將嘗試你的代碼。 –
@ user1965381可以嗎? – psur
嗨Psur,我有一個類似的問題,但我有條件在Update條款中的2個條件。但只有其中一個有效。如果我同時使用它更新0條記錄的條件,則它會更新〜700K或〜80K條記錄。有了這兩個條件,我預計只有約60條記錄需要更新。任何指針都會有很大的幫助。謝謝! – KLeonine