集合运算

集合运算:

并集:  union (只取一遍)/union all (交集取两遍)

交集:  intersect

差集:  minus  (A-B)

1、查询10和20号部门的员工

方法一、select  * from emp where deptno=10  or  deptno=20;

方法二、select * from emp where deptno in (10,20);

方法三、集合运算:

select  * from emp where deptno=10

union (all)

select  * from emp where deptno=20;

2、group by rullup(a,b)语句增强

select deptno,job,sum(sal) from emp group by deptno,job ;

+

select deptno,sum(sal) from emp group by deptno;

+

select sum(sal) from emp;

=select deptno, job,sum(sal) from emp group by rollup(deptno,job);

做集合运算要满足的条件:

1、参与运算的各个集合必须满足列数相同类型一直

2、采用第一个集合的表头作为最后的表头

3、必须在最后一个集合后使用order by

4、括号

select deptno,job,sum(sal) from emp group by deptno,job 

union

select deptno,to_char(null), sum(sal) from emp group by deptno

union

select   to_number(null), to_char(null),sum(sal) from emp;

/*计算sql运行的时间*/set timing on

/*关闭sql运行的时间*/set timing off

/*打开(关闭)当前时间*/set time on(off)

sql原则:尽量不要使用集合运算,执行时间长

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 查询是数据的一个重要操作。用户发送查询请求,经编译软件变异成二进制文件供服务器查询,后返回查询结果集给用户,查询会...
    产品小正阅读 5,310评论 0 2
  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 5,922评论 0 4
  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 5,265评论 0 0
  • 查询基础 算术运算符 (+)(-)(*)(/) 值得注意的是:/ 在oracle中就相当于显示中的除法 5/2 =...
    Autism_37a1阅读 3,385评论 0 0
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,879评论 0 2

友情链接更多精彩内容