想要在oracle sql中的MERGE语句中添加一些条件用于插入/更新

前端之家收集整理的这篇文章主要介绍了想要在oracle sql中的MERGE语句中添加一些条件用于插入/更新前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须在表target_table中插入/更新一些RECORDS.这些记录来了一个source_table.

我正在使用MERGE来更新/插入到target_table中.查询如下

  1. MERGE
  2. INTO target_table tgt
  3. USING source_table src
  4. ON ( src.column1 = tgt.column1 and
  5. src.column2 = tgt.column2)
  6. WHEN MATCHED
  7. THEN
  8. UPDATE
  9. SET tgt.column3= src.column3,tgt.column4 = src.coulmn4
  10. WHEN NOT MATCHED
  11. THEN
  12. INSERT ( tgt.column1,tgt.column2,tgt.column3,tgt.column4 )
  13. VALUES ( src.coulmn1,src.coulmn2,src.coulmn3,src.coulmn4);

我想在更新中添加一些具体条件.

如果target_table.column3在(val1′,’val2)

那么只有应该有更新,否则没有更新或插入.

您可以简单地将WHERE子句添加到UPDATE. More about it in oracle docs.

所以在你的情况下,它应该是:

  1. ...
  2. WHEN MATCHED
  3. THEN
  4. UPDATE
  5. SET tgt.column3= src.column3,tgt.column4 = src.coulmn4
  6. WHERE tgt.column3 IN (val1,val2)
  7. WHEN NOT MATCHED
  8. ...

猜你在找的Oracle相关文章