union union all

转载 2015年07月08日 12:59:02

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;

Union和Union All到底有什么区别

以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个样子,可是还是不是很理解,下面将自己亲自验证: Union:对两个结果集进行并集操作,不...
  • qq_33326449
  • qq_33326449
  • 2016年11月08日 09:33
  • 2076

oracle中union和union all区别与性能分析

[ 概要 ] 经常写sql的同学可能会用到union和union all这两个关键词, 可能你知道使用它们可以将两个查询的结果集进行合并, 那么二者有什么区别呢? 下面我们就简单的分析下. ...
  • zdp072
  • zdp072
  • 2014年05月13日 23:34
  • 7691

SQL中UNION和UNION ALL的详细用法

在开发中,有些数据的存储可能涉及到分库分表,查询的时候,可能需要查询所有的分表,这个时候,就需要用到UNION或者UNION ALL,下面介绍一下UNION的用法以及与UNION ALL的区别: UN...
  • zouxucong
  • zouxucong
  • 2017年06月19日 18:06
  • 2060

SQL Union和SQL Union All两者用法区别效率以及与order by 和 group by配合问题

SQL Union和SQL Union All用法 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语...
  • haiross
  • haiross
  • 2013年12月27日 10:59
  • 8405

优化案例2-----or 等价改写 union all 的经典案例

今天一个之前帮他优化过很多SQL的哥们找我说,有一个分页SQL 很慢,程序debug监控到:前端显示出来第一页的数据就要30秒钟,一共要显示1万2000多条数据,在PL SQL DEV里面 手工执行它...
  • yws_1990
  • yws_1990
  • 2016年05月02日 15:16
  • 1835

Ms SQLServer中的Union和Union All的使用方法和区别

Ms SQLServer中的Union和Union All的使用方法和区别 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部...
  • xieyunc
  • xieyunc
  • 2014年03月09日 00:58
  • 1121

sql语句中多个union all的case when优化

用case when对sql语句中多个union all优化
  • yangfengjueqi
  • yangfengjueqi
  • 2017年12月12日 11:31
  • 85

数据库-union和union all的区别(举例说明)

union在进行表求并集后会去掉重复的元素,所以会对所产生的结果集进行排序运算,删除重复的记录再返回结果。 union all则只是简单地将两个结果集合并后就返回结果。因此,如果返回的两个结果集中...
  • Dove_Knowledge
  • Dove_Knowledge
  • 2017年05月08日 16:19
  • 310

union all 排序问题

sql server2000数据库试图V_Emp(员工试图)已经按照部门、所在专业组、姓名进行了排序(order by DepartID,GroupID,EmpName),如: ID,EmpName...
  • ITX2000
  • ITX2000
  • 2013年12月25日 08:04
  • 588

[Hive]Union使用指南

1. union语法select_statement UNION [ALL | DISTINCT] select_statement UNION [ALL | DISTINCT] select_sta...
  • SunnyYoona
  • SunnyYoona
  • 2017年03月07日 20:37
  • 5850
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:union union all
举报原因:
原因补充:

(最多只允许输入30个字)