码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-01-07 14:06:00      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:img   cat   tab   inter   col   写法   span   _id   通过   

一、概述

  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运算符(交并差集)

标签:img   cat   tab   inter   col   写法   span   _id   通过   

原文地址:https://www.cnblogs.com/jiangbei/p/8227727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!