暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 合并语句

askTom 2017-03-01
225

问题描述

嗨,

我正在研究合并语句。我知道合并用于更新/插入/删除数据。在我的程序中,对于新记录,请插入和现有记录,什么也不做。但是当使用merge语句 'ON' 子句时,我们正在检查与源表和目标表的数据。我的表没有唯一的值,所以我需要检查每个列并插入新记录,如果任何列不匹配。所以问题是我需要检查每一列还是无论如何我们可以检查整行数据?

谢谢,
斯拉瓦尼

专家解答

抱歉,您需要检查每一列。要处理空值,您可以使用解码,例如

SQL> merge into emp e
  2  using ( select * from scott.emp ) m
  3  on (   decode(m.empno,e.empno,1,0) = 1
  4    and decode(m.ename,e.ename,1,0) = 1
  5    and decode(m.deptno,e.deptno,1,0) = 1
  6    )
  7  when matched then
  8  update set sal = m.sal;

14 rows merged.
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论