ORACLE中union/union all/Intersect/Minus用法
Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结果;并且对于Union、Union All、Intersect、Minus都有效。
表头会用第一个连接块的字段。
1.Union
union用法中,两个select语句的字段类型匹配,而且字段个数要相同.
UNION连接的两个表是同一表,使用UNION会过滤重复行,显示的是一张表的数据。
下面SQL查询语句中两个表完全一样,所以查询显示的是单张表的信息。
SCOTT@bys1>select deptno,dname as "aa",loc from dept union select deptno,dname,loc from dept;
DEPTNO aa LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
2.Union All
UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,
效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL。
尽量使用union all,因为union需要进行排序,去除重复记录,效率低。
下面SQL查询语句中两个表完全一样,所以查询显示了两次表内信息。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept union allselect deptno,dname,loc as "bb" from dept;
DEPTNO DNAME aa
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
3.Intersect
对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;返回两个表共同含有的数据,取出交集作为最终的返回结果。
下面SQL查询语句中两个表完全一样,所以查询显示的是单张表的信息。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept intersect select deptno,dname,loc as "bb" from dept;
DEPTNO DNAME aa
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
4.Minus
对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
第一个结果集减去第二个结果集中的内容,所剩余的内容作为最终的返回结果。
下面SQL查询语句中两个表完全一样,所以查询显示无信息。
SCOTT@bys1>select deptno,dname,loc as "aa" from dept minus select deptno,dname,loc as "bb" from dept;
no rows selected
ORACLE中union/union all/Intersect/Minus用法的更多相关文章
- Oracle中的Union、Union All、Intersect、Minus
Oracle中的Union.Union All.Intersect.Minus 众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考. 假设我们有一个表Student,包括 ...
- ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...
- oracle中的exists 和not exists 用法 in与exists语句的效率问题
博文来源(oracle中的exists 和not exists 用法):http://chenshuai365-163-com.iteye.com/blog/1003247 博文来源( in与exi ...
- 问题:oracle ROW_NUMBER()over;结果: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法
ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...
- Oracle中的Union、Union All、Intersect、Minus[转]
众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考. 假设我们有一个表Student,包括以下字段与数据: drop table student; create table ...
- SQL Server 中关于EXCEPT和INTERSECT的用法
熟练使用SQL Server中的各种用法会给查询带来很多方便.今天就介绍一下EXCEPT和INTERSECT.注意此语法仅在SQL Server 2005及以上版本支持. EXCEPT是指在第一个集合 ...
- oracle中的exists 和not exists 用法详解(转)
有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; ...
- Oracle中SQL语言介绍以及基本用法
一.SQL语言支持如下类别命令 1.数据定义语言(DDL):CREATE(创建).ALTER(更改) 和 DROP(删除)命令 1.1 CREATE (创建表,表空间,用户, 索引, 视图, 同义词 ...
- oracle中的exists 和not exists 用法详解
有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; ...
随机推荐
- RubyMine8 安装
在win7下面安装RubyMine8 中文 汉化 1.需要下载 RubyMine8的程序包 2.先安装好 RubyMine8 很简单 点击下一步就可以 选择安装目录这应该就不需要说了 3.汉化 ...
- .net core中的System.Buffers名字空间
最近研究了一下.net core 2.1的基础类库,发现它引入了一个System.Buffers名字空间,里面提供了一系列比较实用的对象,便简单的管中窥豹浏览一下. ArrayPool<T> ...
- HDU 4790 Just Random (2013成都J题)
Just Random Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Understanding the STM32F0's GPIO
Understanding the STM32F0's GPIO This is the first part of the GPIO tutorial for the STM32F0Discover ...
- quartz 2.0 与1.0功能对比
日常开发来说,相对于1.0版,2.0版在使用上有以下几点需要注意的变化 变化一 比1.0多引用了C5.dll C5.dll 一个C#和其他CLI语言的泛型集合类..Net2.0及以上才可以使用.简介地 ...
- DirectInfo.GetFiles返回数组的默认排序
NTFS和CDFS下,是按照字母顺序,而FAT下,按照文件创建时间顺序 using System; using System.Collections; using System.IO; namespa ...
- CentOS安装sctp协议
转自:http://blog.csdn.net/fly_yr/article/details/48375247 序 最近学习Unix网络编程,在第10章节,SCTP客户/服务器 程序实现时,发现很多由 ...
- 深入浅出!从语义角度分析隐藏在Unity协程背后的原理
Unity的协程使用起来比较方便,但是由于其封装和隐藏了太多细节,使其看起来比较神秘.比如协程是否是真正的异步执行?协程与线程到底是什么关系?本文将从语义角度来分析隐藏在协程背后的原理,并使用C++来 ...
- centOS配置国内镜像
本文以163为例, cd /etc/yum.repos.d/wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
- 用开源项目JazzyViewPager实现ViewPager切换动画
JazzyViewPager这个项目可以让viewpager有各种绚丽的动画,而且还可以自由扩展.但从官网下载的lib导入时会出现找不到视图的问题,不知道是不是我人品不行,所以我就自己写了lib.总之 ...