想要在oracle sql中的MERGE语句中添加一些条件用于插入/更新
发布时间:2020-12-12 15:13:41 所属栏目:百科 来源:网络整理
导读:我必须在表target_table中插入/更新一些RECORDS.这些记录来了一个source_table. 我正在使用MERGE来更新/插入到target_table中.查询如下 MERGE INTO target_table tgt USING source_table src ON ( src.column1 = tgt.column1 and src.column2 = tgt.column2)
我必须在表target_table中插入/更新一些RECORDS.这些记录来了一个source_table.
我正在使用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); 我想在更新中添加一些具体条件. 如果target_table.column3在(val1′,’val2) 那么只有应该有更新,否则没有更新或插入. 您可以简单地将WHERE子句添加到UPDATE. More about it in oracle docs.所以在你的情况下,它应该是: ... WHEN MATCHED THEN UPDATE SET tgt.column3= src.column3,tgt.column4 = src.coulmn4 WHERE tgt.column3 IN (val1,val2) WHEN NOT MATCHED ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |