Oracle中的集合操作符

前端之家收集整理的这篇文章主要介绍了Oracle中的集合操作符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

-- Start

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

  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 @H_301_76@

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

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

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

    -- Last Edited on 2014-12-17

    -- Created byShangBo on2014-12-17

    -- End

    原文链接:https://www.f2er.com/oracle/208461.html

    猜你在找的Oracle相关文章