前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oracle 表的集合运算(联合查询)

oracle 表的集合运算(联合查询)

作者头像
我与梦想有个约会
发布2023-10-20 18:17:24
1850
发布2023-10-20 18:17:24
举报
文章被收录于专栏:jiajia_dengjiajia_deng

以前使用 ms sqlserver 的时候就用到过 union 关键字,将多条查询语句保存到一个列表中用程序来处理,这样可以让多个查询结果集合合并在一起,一般很少有这种需求,个人在使用的时候除非是子查询或多表查询实在无法实现的情况下才会用到。


集合运算要注意的问题

  1. 参与运算的各个集合必须列数相同且类型一致
  2. 采用第一个集合的表头作为最终结果的表头
  3. 如果使用了 order by,必须每个集合后面都使用 order by
  4. 可以使用小括号()先执行后面的语句

集合运算的几种方式

图片来自传智播客教师课件。 1、union/union all 并集 UNION运算符返回两个集合去掉重复元素后的所有记录。

代码语言:javascript
复制
SELECT employee_id, job_id
FROM   employees
UNION
SELECT employee_id, job_id
FROM   job_history;
UNION ALL 返回两个集合的所有记录,包括重复的。
SELECT employee_id, job_id, department_id
FROM   employees
UNION ALL
SELECT employee_id, job_id, department_id
FROM   job_history
ORDER BY  employee_id;

2015-07-22_193759
2015-07-22_193759

2、intersect 交集 INTERSECT 运算符返回同时属于两个集合的记录。

代码语言:javascript
复制
select ename,sal from emp
where sal between 700 and 1300
INTERSECT
select ename,sal from emp
where sal between 1201 and 1400;

2015-07-22_193807
2015-07-22_193807

3、minus 差集 MINUS返回属于第一个集合,但不属于第二个集合的记录。

代码语言:javascript
复制
select ename,sal from emp
where sal between 700 and 1300
minus
select ename,sal from emp
where sal between 1201 and 1400;

2015-07-22_193816
2015-07-22_193816
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集合运算要注意的问题
  • 集合运算的几种方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档