SQL中Union和Union All
工作中,看到大佬写的一段SQL,查询了五个表中的数据,最后求某个收入的总和,其中使用了Union All,因此在这里记录一下我从中学到的东西
先上语法
Union: [ Select语句1 ]
Union
[ Select语句2 ]
Union
...
Union All: [ Select语句1 ]
Union All
[ Select语句2 ]
Union All
...
Union 和 Union All 都是用来将多个SELECT语句查询出的结果集进行合并,得到的是一个临时表,要对这个临时表进行操作,需要起别名
要注意的是,使用这两个操作符的时候,多个查询语句查出来的结果集应具有相同的列数,列的顺序也必须相同(这里,如果数据库表中的字段名不一致,可以对列起别名,使要合并的结果集的列名一致),同时列的数据类型也要相同
Union是讲SELECT语句查出来的结果集合并,并且将其中重复的值去除掉,只显示不同的值,如果要显示重复的值,就需要使用Union All
也就是说,Union会对查询出来的结果集进行去除重复值的操作,并且会按照字段的顺序进行排序,而Union All会将结果集直接全部显示且不会进行排序,这也就导致了Union All 的效率要比Union 好很多
使用Union 操作符时,子句中不可以使用order by,使用后执行会报错,如果逻辑上必须对查询语句进行排序,那么可以在SELECT查询语句中使用子查询来进行order by排序
所以,一般不要求去重的时候,合并结果集选择Union All 比较好
2019-02-12 修改
之前写到使用Union操作符时,子句不可以使用order by,这是不严谨的,应该是Union操作符之前的子句不可以使用order by

order by子句在Union操作符之后,可以正常查出数据,并且是按照order by的排序方式展示数据

SQL中Union和Union All的更多相关文章
- LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用
Ø 前言 LINQ to SQL 中需要对两个或多个数据集进行操作,比如:合并.取交集等,主要使用下面四个方法,这四个方法都是 System.Linq.IQueryable<out T> ...
- SQL中intersect、union、minus和except 运算符
1.intersect运算符intersect运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表.当 ALL 随 INTERSECT 一起使用时 (inte ...
- Sql中的并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)详解
UNION 查询选修了180101号或180102号课程或二者都选修了的学生学号.课程号和成绩. (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号='180101' ...
- Sql Server的艺术(五) SQL UNION与UNION JOIN运算符
学习本节所用表: CREATE TABLE TEACHER ( ID INT IDENTITY (,) PRIMARY KEY , --主键,自增长 TNO INT NOT NULL, --教工号 T ...
- SQL中union运算操作的理解
在SQL中,对于并运算,可以使用union关键字. 例如: SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FRO ...
- Sql中的union和union all的讲解
SQL UNION 和 UNION ALL操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相 ...
- 【转载】SQL语句中Union和Union All的区别
在使用到SQL语句进行数据库查询的过程中,如果需要求两个数据集合的并集,一般会使用到联合查询关键字Union或者Union All,其实Union和Union All两者的使用有一定差别,查出来的数据 ...
- SQL中Union和UnionAll的使用
SQL中Union和UnionAll的使用 1.建立一个Student表 ,如下: 2.建立一个Teacher表,如下: 3.使用Union,将去重并组合表,效果: 4.使用Union All,不去重 ...
- sql中Union和union all的使用
该文转载自:http://www.cnblogs.com/chaobaojun/archive/2009/12/24/1631508.html 在MS-SQL如果将两个或更多查询的结果组合为单个结果集 ...
随机推荐
- python 绑定方法
一.绑定方法与非绑定方法 1.绑定方法''' 绑定方法:绑定给谁就是给谁用的 1.凡是类中的方法和函数,都是绑定给对象使用的: 2.绑定方法都有自动传值的功能.传递进去的值,就是对象本身. 3.如果类 ...
- Archery:开源漏洞评估和管理工具
Archery:开源漏洞评估和管理工具
- 基于MAVEN使用IDEA创建dubbo入门项目图文教程
花了很长时间没有找到一个很详细的图文教程来学习dubbo入门框架,故记录下来. 一: 项目工程目录 简单介绍项目目录结构: 二: 创建父工程 具体操作步骤: 1,打开IDEA,按下面步骤来 File- ...
- git删除远程文件夹
git rm -r -n --cached "bin/" //-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览. git rm -r --ca ...
- erlang证书加密
-module(...). -include("ewp.hrl").-include("backend.hrl").-include_lib("pub ...
- 关于python那些事儿
学习总结: 1.输入一个数据 a=input. 2.在输出结果中增加字符 # 运行如下语句: print("你的名字叫{}.".format("饺子")) (以 ...
- 问题1:Oracle数据库监听启动失败(重启监听,提示The listener supports no services)
编辑监听文件:/home/DB/oracle/11gR2/db/network/admin/listener.ora 在文件内添加静态监听实例,如下内容: SID_LIST_LISTENER =(SI ...
- 了解box-sizing 盒子模型
最近看到别人代码有用到box-sizing属性,自己没用过,记录一下 box-sizing:border-box 指定宽度和高度(最小/最大属性)确定元素边框box 理解:假设宽高为100px,设置了 ...
- while循环--登录
user = "fallen577" password = " count = 0 while count < 3: username = input(" ...
- Python04(基础语法)
Trainning-day03回顾1.输出重定向 > 将输出到终端的内容输出到指定文件 命令 > 文件 注意: 1.如果文件存在,覆盖原文件 2.如果文件不存在,直接创建新文件2.输出追加 ...