Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All

 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致);

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

例如:

select employee_id,job_id from employees 
union 
select employee_id,job_id from job_history

以上将两个表的结果联合在一起。这两个例子会将两个select语句的结果中的重复值进行压缩,也就是结果的数据并不是两条结果的条数的和。如果希望即使重复的结果显示出来可以使用union all,例如:

2.在oracle的scott用户中有表emp 
select * from emp where deptno >= 20 
union all 
select * from emp where deptno <= 30 
这里的结果就有很多重复值了。

有关union和union all关键字需要注意的问题是:

union 和 union all都可以将多个结果集合并,而不仅仅是两个,你可以将多个结果集串起来。 
使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名。例如下面是一个例子: 
select empno,ename from emp 
union 
select deptno,dname from dept 
我们没有必要在每一个select结果集中使用order by子句来进行排序,我们可以在最后使用一条order by来对整个结果进行排序。例如: 
select empno,ename from emp 
union 
select deptno,dname from dept 
order by ename;

原文地址:http://www.cnblogs.com/xiangshu/articles/2054447.html

最新文章

  1. 二十四、JDK1.5新特性---泛型
  2. 【转】struts1.2的action参数配置
  3. 問題排查:类型“System.DateTime”的对象无法转换为类型“System.String”
  4. 队列Queue
  5. 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)
  6. 计算几何--判断两条线段相交--poj 2653
  7. jQuery uploadify上传文件404,500错误
  8. .NET 里 静态方法的并发处理
  9. squid代理服务器搭建及配置
  10. hdu 4715 Difference Between Primes(素数筛选+树状数组哈希剪枝)
  11. Linux开机禁用开启防火墙
  12. 关于fprint()和fwrite()
  13. python:threading.Thread类的使用详解
  14. Generate google sitemap xml
  15. msvcp140.dll丢失解决方案
  16. Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
  17. 单例模式(懒汉、饿汉、同步锁、static、枚举)实现
  18. selenium APi
  19. 13.mysql基本查询
  20. string.replace替换

热门文章

  1. mysql load data 乱码的问题
  2. Notepad++的xml文本格式化
  3. 最新原创:Power8伴随云计算横空出世
  4. 装tomcat和nginx心得
  5. ASP.NET MVC 实现AJAX跨域请求方法《1》
  6. java 获取当月第一天和最后一天 获取前一个月第一天和最后一天
  7. c++程序设计之编程思想
  8. IE8下服务端获取客户端文件的路径为C:/fakePath问题的解决方案
  9. webform--LinQ的相关操作
  10. rabbitMQ学习(七)反馈模式