查询10和20号部门的员工
SQL> 1. select * from emp where deptno in (10,20);
SQL> 2. select * from emp where deptno=10 or deptno=20;
SQL> 3. 集合运算
SQL> select * from emp where deptno=10
SQL> 加上
SQL> select * from emp where deptno=20
SQL> */
SQL> select * from emp where deptno=10
2 union
3 select * from emp where deptno=20; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10 已选择 8 行。 SQL> host cls SQL> select deptno,job,sum(sal) from emp group by rollup(deptno,job); DEPTNO JOB SUM(SAL)
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 CLERK 1900
20 ANALYST 6000
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600 DEPTNO JOB SUM(SAL)
---------- --------- ----------
30 9400
29025 已选择 13 行。 SQL> select deptno,job,sum(sal) from emp group by deptno,job
2 union
3 select deptno,sum(sal) from emp group by deptno
4 union
5 select sum(sal) from emp;
select deptno,sum(sal) from emp group by deptno
*
第 3 行出现错误:
ORA-01789: 查询块具有不正确的结果列数 SQL> /*
SQL> 注意的问题:
SQL> 1.参与运算的各个集合必须列数相同且类型一致
SQL> 2. 采用第一个集合作为最后的表头
SQL> 3. order by 永远在最后
SQL> 4. 括号
SQL> */
SQL> select deptno,job,sum(sal) from emp group by deptno,job
2 union
3 select deptno,to_char(null),sum(sal) from emp group by deptno
4 union
5 select to_number(null),to_char(null),sum(sal) from emp; DEPTNO JOB SUM(SAL)
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600 DEPTNO JOB SUM(SAL)
---------- --------- ----------
30 9400
29025 已选择 13 行。 SQL> --break on deptno skip 2
SQL> host cls SQL> --SQL执行时间
SQL> set timing on
SQL> select deptno,job,sum(sal) from emp group by rollup(deptno,job); DEPTNO JOB SUM(SAL)
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 CLERK 1900
20 ANALYST 6000
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600 DEPTNO JOB SUM(SAL)
---------- --------- ----------
30 9400
29025 已选择 13 行。 已用时间: 00: 00: 00.02
SQL> select deptno,job,sum(sal) from emp group by deptno,job
2 union
3 select deptno,to_char(null),sum(sal) from emp group by deptno
4 union
5 select to_number(null),to_char(null),sum(sal) from emp; DEPTNO JOB SUM(SAL)
---------- --------- ----------
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600 DEPTNO JOB SUM(SAL)
---------- --------- ----------
30 9400
29025 已选择 13 行。 已用时间: 00: 00: 00.04
SQL> --SQL 优化 5. 尽量不要使用集合运算
SQL> set timing off
SQL> spool off

最新文章

  1. .NET Core 1.1 发布 文档下载资源汇总
  2. XML编码utf-8有中文无法解析或乱码 C#
  3. Network | UDP checksum
  4. java中日历代码的实现
  5. [C#]MemoryStream.Dispose之后,为什么仍可以ToArray()?
  6. Highcharts-3.0.6
  7. 学习php 韩顺平
  8. Networking - ICMP 协议
  9. centos系统安装中文字体几种方法
  10. bootstrap学习以及其插件
  11. Linux网络管理——ISO/OSI七层模型
  12. RxJS速成 (上)
  13. Java 多线程(一)—— 概念的引入
  14. Jmeter之mysql性能测试
  15. 12.4 开课三个月(phpcms安装)
  16. [福大2018高级软工教学]团队Alpha阶段成绩汇总
  17. PHP实现视频文件上传完整实例
  18. django复习-1-环境搭建和创建项目
  19. 简单叨叨bootstrap按钮无限层级下拉菜单的实现
  20. WPF 元素的查找

热门文章

  1. day5 用户交互 input用法
  2. 【总结】 Lucas定理
  3. Leetcode 7.反转整数 By Python
  4. 洛谷 P3705 [SDOI2017]新生舞会 解题报告
  5. 软Raid5制作
  6. cf1000C Covered Points Count (差分+map)
  7. django MTV架构下的网站开发步骤
  8. (转)Redis的那些最常见面试问题
  9. javascript高级程序设计第一章有感
  10. 文本框JTextField,密码框JPasswordField