Oracle笔记 之 merge语法

news/2024/6/18 1:58:14 标签: oracle, 数据库, database, merge
merge_0">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语句就失去意义。

http://www.niftyadmin.cn/n/752231.html

相关文章

windows命令行关闭IE代理

打开:reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f 关闭:reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t …

JavaFX 滚动面板:ScrollPane,设置滚动区域、滚动块、滚动轨道,自动置底等

工作需要,研究了一下 ScrollPane,先上图感受: import javafx.application.Application; import javafx.application.Platform; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; import java…

Oracle笔记 之 update语法

方式一:单表更新 用确定值更新指定条件的数据。 例如:给30部门所有员工加薪100$ Update empSet comm comm 100Where deptno 30;方式二:两表关联更新 两表关联用指定表里的数据更新指定列。 例如:用emp_1表里的comm列100更新…

Java IO,硬骨头也能变软

开胃菜 先看一张网上流传的http://java.io包的类结构图: 当你看到这幅图的时候,我相信,你跟我一样内心是崩溃的。 有些人不怕枯燥,不怕寂寞,硬着头皮看源码,但是,能坚持下去全部看完的又有几个呢…

VMware新建OracleLinux6.5虚拟机

新建虚拟机 自定义虚拟机 设置虚拟机名称,建议设置一个包含简要信息的名称。 选择存储 建议选择虚拟版别8. 选择操作系统类型 划分资源 测试使用的虚拟机选择2核、8g内存、200g空间即可。 其他设置 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存…

CSS3动画总结学习(一)(转)

每一个不曾起舞的日子,都是对生命的辜负. CSS3动画总结学习(一) 参考文章:CSS3 Transitions, Transforms和Animation使用简介与应用展示CSS 参考手册动画的分类 平移动画 transform: 就是变换, 变换, 变换也就是能看到的, 直接的更改. 暴力的那种..dv {transform: translate(10…

可用内存异常:总内存减去已使用内存远低于可用内存

任务管理器的性能菜单中可以观察内存的可用内存,如果可用内存过小,很容易导致内存溢出,程序无法打开或者运行闪退。 可用内存异常:总内存减去已使用内存远低于可用内存。举例:如果总内存8G,但查看任务管理…

OracleLinux6.5图形化安装Oracle11g

关闭防火墙 关闭防火墙 参考VMware新建OracleLinux6.5虚拟机关闭防火墙。 禁用selinux [rootOracle11g ~]# vi /etc/selinux/config 将 SELINUXenforcing 改为 SELINUXdisabled 。 安装依赖包 挂载OracleLinux6.5镜像新建目录加载镜像文件 [rootOracle11g ~]# mkdir /med…