我必须在表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