博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL查询中的UNION ALL和UNION区别
阅读量:6935 次
发布时间:2019-06-27

本文共 1319 字,大约阅读时间需要 4 分钟。

hot3.png

006zipb5zy77mdjqfy43c&690

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:使用合并示例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:使用合并示例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查询合并了两个子查询的重复的记录。

 

 

转载于:https://my.oschina.net/u/2971691/blog/809492

你可能感兴趣的文章
InstallShield12豪华版破解版下载|InstallShield下载|软件打包工具
查看>>
web项目构建
查看>>
MVC中,视图的Layout使用
查看>>
Samba通过ad域进行认证并限制空间大小《转载》
查看>>
理解事件捕获。在限制范围内拖拽div+吸附+事件捕获
查看>>
[Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
查看>>
任务管理器进程中多个chrome.exe的问题
查看>>
pthread_join直接决定资源是否能够及时释放
查看>>
StoryBoard学习(5):使用segue页面间传递数据
查看>>
RelativeLayout经常使用属性介绍
查看>>
Robocopy是微软Windows Server 2003资源工具包中众多多用途的实用程序之一(它是基于强大的拷贝程序...
查看>>
ajaxFileUpload文件上传
查看>>
Java凝视Override、Deprecated、SuppressWarnings具体解释
查看>>
C++学习笔记13-类继承
查看>>
修改以及设计好的表
查看>>
UML用例图总结
查看>>
八大排序算法
查看>>
在LINUX终端和VIM下复制粘贴
查看>>
IE开发人员工具手册
查看>>
【转】android是32-bit系统还是64-bit系统
查看>>