失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > oracle --union和union all

oracle --union和union all

时间:2023-07-07 10:28:18

相关推荐

oracle --union和union all

独角兽企业重金招聘Python工程师标准>>>

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

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

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

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

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

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

例子如下

用户表t_user如下

经销商表t_fchs如下

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

select*from(selecttu.user_nameasname,tu.telephonefromt_usertu)union(selecttf.fchs_name,tf.fchs_telephonefromt_fchstf)

结果如下:

union all连接两张表

select*from(selecttu.user_nameasname,tu.telephonefromt_usertu)unionall(selecttf.fchs_name,tf.fchs_telephonefromt_fchstf)

结果如下:

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

二、intersect和minus的用法

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

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

select*from(selecttu.user_nameasname,tu.telephonefromt_usertu)Intersect(selecttf.fchs_name,tf.fchs_telephonefromt_fchstf)

结果如下:

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

三、Minus的用法

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

minus的作用是去同留异

select*from(selecttu.user_nameasname,tu.telephonefromt_usertu)minus(selecttf.fchs_name,tf.fchs_telephonefromt_fchstf)

结果如下:

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

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

如果觉得《oracle --union和union all》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。