文档章节

oracle --union和union all

求是科技
 求是科技
发布于 2015/08/03 15:55
字数 487
阅读 375
收藏 2

当我们需要将两个select语句的结果作为一个整体显示时,就需要使用到union或者union all关键字。

union的作用是将多个结果合并在一起显示出来。

union和uinon all的区别是:union会对结果集中的重复结果去重,而union all则会将所有的结果全部显示出来。

union:对两个(或多个)结果集进行并集操作,不包括重复行,同时进行默认规则的排序。

union all:对两个结果集进行并集操作,包括重复行,不进行排序。

可以在最后一个结果集中指定order by子句改变排序方式。

例子如下

用户表t_user如下

经销商表t_fchs如下

union连接两张表,只显示两个字段:名称和电话号码

select
*
from
(select
tu.user_name as name,tu.telephone
from
t_user tu)
union
(select
tf.fchs_name,tf.fchs_telephone
from
t_fchs tf)

结果如下:

union all连接两张表

select
*
from
(select
tu.user_name as name,tu.telephone
from
t_user tu)
union all
(select
tf.fchs_name,tf.fchs_telephone
from
t_fchs tf)

结果如下:

由上可知:union是去重了的(去掉了 name:米乐 的那一行),union all全部显示出来。

二、intersect和minus的用法

Intersect:对两个结果集进行交集操作,不包括重复行。默认规则排序

例如:对t_user表和t_fchs表求交集

select
*
from
(select
tu.user_name as name,tu.telephone
from
t_user tu)
Intersect
(select
tf.fchs_name,tf.fchs_telephone
from
t_fchs tf)

结果如下:

备注:由两张表可知,交集的结果就只有这一个。

三、Minus的用法

Minus:对两个结果集进行差操作,不包括重复行,同时默认排序

minus的作用是去同留异

select
*
from
(select
tu.user_name as name,tu.telephone
from
t_user tu)
minus
(select
tf.fchs_name,tf.fchs_telephone
from
t_fchs tf)

结果如下:

备注:t_user与t_fchs的差集操作得到的结果是

t_user中与t_fchs表中相同的去掉了,不同的(只针对t_user表)留下来了。



© 著作权归作者所有

上一篇: Oracle --学习路线
下一篇: IOS --KVO\KVC
求是科技

求是科技

粉丝 98
博文 451
码字总数 232301
作品 0
成都
后端工程师
私信 提问
Oracle 查询效率 谨慎选择

Oracle有很多值得学习的地方,通常情况下,用UNION替换WHERE子句中的OR将会起到较好的效果。对索引列使用OR将造成全表扫描。注意,以上规则只针对多个索引列有效。假如有column没有被索引,查...

梁佳
2012/08/26
0
0
SQL优化常用方法40

ORACLE内部操作 当执行查询时,ORACLE采用了内部的操作. 下表显示了几种重要的内部操作. ORACLE Clause 内部操作 ORDER BY SORT ORDER BY UNION UNION-ALL MINUS MINUS INTERSECT INTERSECT D...

inzaghi1984
2017/12/16
0
0
oracle sql 优化(三)

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

等待救赎
2016/03/02
26
0
oracle的left join,right join和full join的一点介绍

以下是摘自oracle ocp9i文档: outer join syntax: 1)you use an outer join to also see rows that do not meet the join condition 2)the outer join operator is the plus sign(+) outer ......

长平狐
2012/09/19
122
0
Oracle 提高查询性能(基础)

#1,选择最有效的表名顺序 Oracle解析器总是按照从右至左的顺序处理FROM后面的表,因此FROM最右边的表将会被当做驱动表优先处理,当存在多个表关联时,应当使用记录少的表当做驱动表。如果关...

王大叔爱编程
2014/09/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Exchanger

从官方的javadoc可以知道, 当一个线程到达exchange调用点时, 如果它的伙伴线程此前已经调用了此方法, 那么它的伙伴会被调度唤醒并与之进行对象交换, 然后各自返回。 如果它的伙伴还没到达...

Java搬砖工程师
9分钟前
0
0
Istio 在阿里云容器服务的部署及流量治理实践

目标 在阿里云容器服务 Kubernetes 集群上部署 Istio 服务网格 实践灰度发布、故障注入、熔断等 Istio 流量管理特性 准备工作 安装和设置 kubectl 客户端,请参考不同的操作系统,如果已经安...

阿里云云栖社区
18分钟前
0
0
深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)

上篇文章《深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)》我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根节点下面,可配置properties、typeA...

须臾之余
35分钟前
3
0
Java Web项目通过filter限制IP访问及路由拦截

背景 web开发中出于安全方面的考虑,对于后台管理项目通常会对用户访问做限制,常见的做法是硬件上设置白名单,过滤掉不需要的IP访问来保证管理平台的安全。但是在硬件操作不方便的情形之下,...

豫华商
50分钟前
4
0
nginx启动后页面还是打不开

是因为防火墙没有关闭 service iptables stop

米修米修er
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部