加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle中的集合操作符

发布时间:2020-12-12 14:41:42 所属栏目:百科 来源:网络整理
导读:-- Start Oracle支持如下几个集合操作符。 [sql] view plain copy print ? UNION 用来求两个集合的并集,并去掉重复值 UNION ALL 用来求两个集合的并集 INTERSECT 用来求两个集合的交集,并去掉重复值 MINUS用来求在第一个集合中存在,而在第二个集合中不存

-- Start

Oracle支持如下几个集合操作符。

[sql] view plain copy print ?
  1. UNION用来求两个集合的并集,并去掉重复值
  2. UNIONALL用来求两个集合的并集
  3. INTERSECT用来求两个集合的交集,并去掉重复值
  4. MINUS用来求在第一个集合中存在,而在第二个集合中不存在的记录,并去掉重复值

下面我们先来准备测试数据。

copy CREATETABLETEST_LEFT

  • (
  • COLCHAR
  • );
  • INSERTINTOTEST_LEFTVALUES('A');
  • VALUES('A');
  • VALUES('B');
  • VALUES('B');
  • VALUES('C');
  • TABLETEST_RIGHT
  • INTOTEST_RIGHTVALUES('D');
  • VALUES('E');

  • 下面我们通过一个例子来对比一下它们直接的不同。
    copy ---UNION
  • SELECT*FROMTEST_LEFT
  • UNION
  • FROMTEST_RIGHT;
  • ---结果
  • A
  • B
  • C
  • D
  • E
  • ---UNIONALL
  • FROMTEST_LEFT
  • ALL
  • FROMTEST_RIGHT;
  • ---结果
  • A
  • B
  • C
  • ---INTERSECT
  • INTERSECT
  • ---MINUS
  • MINUS
  • C

  • 大家对比一下它们之间的结果就可以看出它们之间的区别,不过有个问题需要注意:

    UNION 和 INTERSECT 两别集合可以互换的,但是 MINUS 互换将有不同的结果,如下:

    copy ---语句1

  • MINUS
  • ---语句2
  • FROMTEST_RIGHT
  • FROMTEST_LEFT;
  • E

  • --更多参见:Oracle SQL 精萃

    --声明:转载请注明出处

    -- Last Edited on 2014-12-17

    -- Created byShangBo on2014-12-17

    -- End

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读