Oracle笔记 之 merge语法

merge语法

用满足条件的查询结果集更新满足条件的表的内容,如果匹配上则更新,没有匹配上则插入。
具体语法如下:

Merge Into table1 a
Using (Select col1, col2, col3 From table2 Where b.col4 = value4) b
On (a.col1 = b.col1)
When Matched Then
  Update Set a.col2 = b.col2, a.col3 = b.col3
When Not Matched Then
  Insert
    (a.col1, a.col2, a.col3)
  Values
    (b.col1, b.col2, b.col3) Where a.col4 = value4;
关键字
  • Merge Into
    指定要更新的表并指定别名,必需。

  • Using
    指定满足条件的结果集,必需。
    结果集用‘()’包裹并指定别名

  • On
    指定比对的依据,必需。
    依据用‘()’包裹。

  • When Matched Then
    指定满足On条件的操作,可选。
    跟Update Set配对使用。

  • Update Set
    跟 When Matched Then配对使用,负责更新表内容。
    不能指定更新On条件包含的内容。

  • When Not Matched Then
    指定不满足On条件的操作,可选。
    跟Insert Values配对使用。

  • Insert Values
    跟 When Not Matched Then配对使用,负责插入表内容。
    可以指定更新表的内容。

  • Where
    指定更新表的内容
    ,可选。

注意事项
  • on
    • 尽量不要使用限制条件
    • 有限制条件写在查询语句里或者在语句最后写where子句
  • update set
    • 不要包含on匹配列
  • When Matched Then 或者 When Not Matched Then
    • 必须二选一,否则merge语句就失去意义。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值