Oracle入门第六天(中)——SET运算符(交并差集)

Posted ---江北

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle入门第六天(中)——SET运算符(交并差集)相关的知识,希望对你有一定的参考价值。

一、概述

  1.SET运算符是什么 

    将多个查询用 SET 操作符连接组成一个新的查询

      UNION/UNION ALL——并集

      INTERSECT——交集

      MINUS——差集(A\\B=A中去掉B中也有的元素)

    关于mysql的交、并、差集,参考http://blog.csdn.net/goodleiwei/article/details/42149567

  2.图解

   

 

二、交集——UNION

   UNION取交集(自动去重,且要求两结果集列可以对应合并)

SELECT * FROM employees1
UNION
SELECT * FROM employees2

 

    UNION ALL不去重:

 

SELECT * FROM employees1
UNION ALL
SELECT * FROM employees2

 

    排序可以采用以下方式:(因为department_id是第11列,故直接写上列数即可)

SELECT * FROM employees1
UNION
SELECT * FROM employees2
ORDER BY 11

    也可以采取再套一层的写法,参考:https://www.2cto.com/database/201210/163404.html

  当然,如果列确实不匹配,可以通过以下形式调整:

 

SELECT department_id, TO_NUMBER(null) 
       location, hire_date
FROM   employees
UNION
SELECT department_id, location_id,  TO_DATE(null)
FROM   departments;

 

SELECT employee_id, job_id,salary
FROM   employees
UNION
SELECT employee_id, job_id,0
FROM   job_history;

 

 

三、交集——INTERSECT

  

SELECT * FROM employees1
INTERSECT
SELECT * FROM employees2

四、差集——MINUS

  

SELECT employee_id,job_id
FROM   employees
MINUS
SELECT employee_id,job_id
FROM   job_history;

 

以上是关于Oracle入门第六天(中)——SET运算符(交并差集)的主要内容,如果未能解决你的问题,请参考以下文章

Oracle入门第六天(上)——用户控制

Python 入门第六天

Python 入门第六天

大数据入门第六天——HDFS详解

Python入门第三十六天Python丨文件写入

python入门第十六天__匿名函数,返回函数,闭包