文档章节

SQL查询中的UNION ALL和UNION区别

博为峰教研组
 博为峰教研组
发布于 2016/12/21 11:29
字数 357
阅读 18
收藏 0

UNION和UNION ALL的重要的区别关于对重复结果的处理。

  UNION在合并子查询重复的记录只保留一条,而UNION All并不合并子查询的重复记录。现举例说明它们之间的区别。

示例1:查询职位为‘CLERK’员工信息。

SQL> SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE JOB='CLERK';

 

     EMPNO ENAME      DEPTNO

---------- ---------- ---------

      7369 SMITH      CLERK

      7876 ADAMS      CLERK

      7900 JAMES      CLERK

      7934 MILLER     CLERK

示例2:查询部门编号为20员工信息。

SQL> SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE DEPTNO=20;

 

     EMPNO ENAME      DEPTNO

---------- ---------- ---------

      7369 SMITH      CLERK

      7566 JONES      MANAGER

      7788 SCOTT      ANALYST

      7876 ADAMS      CLERK

      7902 FORD       ANALYST

 

示例3:使用UNION ALL合并示例1和示例2的子查询。

SQL> SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE JOB='CLERK'

  2  UNION ALL

  3  SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE DEPTNO=20;

 

     EMPNO ENAME      DEPTNO

---------- ---------- ---------

      7369 SMITH      CLERK

      7876 ADAMS      CLERK

      7900 JAMES      CLERK

      7934 MILLER     CLERK

      7369 SMITH      CLERK

      7566 JONES      MANAGER

      7788 SCOTT      ANALYST

      7876 ADAMS      CLERK

      7902 FORD       ANALYST

 

已选择9行。

 

示例4:使用UNION合并示例1和示例2的子查询。

SQL> SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE JOB='CLERK'

  2  UNION

  3  SELECT EMPNO,ENAME,JOB DEPTNO FROM EMP WHERE DEPTNO=20;

 

     EMPNO ENAME      DEPTNO

---------- ---------- ---------

      7369 SMITH      CLERK

      7566 JONES      MANAGER

      7788 SCOTT      ANALYST

      7876 ADAMS      CLERK

      7900 JAMES      CLERK

      7902 FORD       ANALYST

      7934 MILLER     CLERK

 

已选择7行。

从示例4可以看到UNION合并后记录数据比使用UNION ALL少了2条。很显然使用UNION查询合并了两个子查询的重复的记录。

 

 

© 著作权归作者所有

博为峰教研组
粉丝 52
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
MySQL UNION && UNION ALL

MySQL UNION && UNION ALL http://blog.itpub.net/29254281/viewspace-1190027/ http://my.oschina.net/xinxingegeya/blog/225646 建立如下表, type 分别为偶数 或 奇数 的查询结构, 这两个......

秋风醉了
2015/07/08
72
0
sql中UNION和UNION ALL的区别

写sql时我们经常会遇到需要把从多张表查询的集果集进行合并。这时就用到了union。使用union或union all 时一定要保证查询的列的一致性 。不然sql会报错。字段不一致的话可以用单引号来占位。...

$>_<$
2018/07/23
0
0
oracle 集操作和exists、in的运用场景

1 集操作 定义:把多个sql的结果集,通过逻辑上的整合运算,拼在一起显示。 集操作缺省下都是按第一个查询的第一列升序排序,当然除了union all: minus:取差集,可用于对两个结果集进行测试...

长平狐
2012/09/19
96
0
oracle sql 优化(三)

(23) 用>=替代> 高效: SELECT FROM EMP WHERE DEPTNO >=4 低效: SELECT FROM EMP WHERE DEPTNO >3 两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的......

等待救赎
2016/03/02
35
0
UNION中ORDER By的使用

遇到的问题: 一个sql中,union了几个子查询。单独执行每个子查询都没问题,但union后执行,报 ORA-00904: "xxx": invalid identifier 关于union的使用: SQL: UNION Query: http://www.tec...

xiaoqiang_sea
2017/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

金蝶EAS DEP 服务端 脚本

1、服务端执行SQL //服务端更新单据状态var imp = JavaImporter(); imp.importPackage(Packages.com.kingdee.eas.scm.im.inv); imp.importPackage(Packages.com.kingdee.eas.srt.comm......

路过饭堂门口
22分钟前
22
0
Hive之导出文件按逗号分隔到本地文件

如下所示,默认导出的是用\t分隔的,需要使用管道符进行转换,经常使用到,记录下. List-1 hive -e "SELECT * from student" | sed 's/\t/,/g' > /tmp/student.csv...

克虏伯
31分钟前
34
0
转置/解压缩功能(zip的反转)?

我有一个2项元组的列表,我想将它们转换为2个列表,其中第一个包含每个元组中的第一个项目,第二个列表包含第二个项目。 例如: original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]# an......

技术盛宴
47分钟前
53
0
小猪o2o系统v14.0升级v14.1攻略含小猪CMS微店铺和智慧店铺及小程序百项升级

首先我们要注意升级前的以下几个内容: 即 对环境的要求 网站需求PHP7.1 MYSQL5.1以上 Sw解密组件 解密组件在swoole-loader内 解压缩网站包 修改Conf/db.php内数据库文件 替换数据库内xxx.com...

my_gode
57分钟前
98
0
「干货来袭」Github最全Nodejs资源集

今天给大家分享一下Github上面最全的Nodejs资源集awesome-nodejs,该项目聚合了nodejs各类优质资源,对自立于全栈开发或者想了解nodejs技术栈的开发同学极有帮助,有想进一步了解nodejs的千万...

gamedilong
今天
56
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部