首页 > 其他分享 >union all和union的区别用法

union all和union的区别用法

时间:2022-10-16 11:23:03浏览次数:65  
标签:结果 union 区别 用法 重复 emp 排序 select

union all和union的区别:取结果的交集,union对两个结果集进行并集操作,不包括重复行,相当于distinct,同时进行默认规则的排序;union all:对两个结果集进行并集操作,包括重复行,即所有的结果全部显示,不管是不是重复。
Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All。
两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致);
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
可以在最后一个结果集中指定Order by子句改变排序方式。
例如:
select employee_id,job_id from employees
union
select employee_id,job_id from job_history
以上将两个表的结果联合在一起。这两个例子会将两个select语句的结果中的重复值进行压缩,也就是结果的数据并不是两条结果的条数的和。如果希望即使重复的结果显示出来可以使用union all,例如:
2.在oracle的scott用户中有表emp
select * from emp where deptno >= 20
union all
select * from emp where deptno <= 30
这里的结果就有很多重复值了。
有关union和union all关键字需要注意的问题是:
union 和 union all都可以将多个结果集合并,而不仅仅是两个,你可以将多个结果集串起来。
使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名。例如下面是一个例子:
select empno,ename from emp
union
select deptno,dname from dept
我们没有必要在每一个select结果集中使用order by子句来进行排序,我们可以在最后使用一条order by来对整个结果进行排序。例如:
select empno,ename from emp
union
select deptno,dname from dept
order by ename;

标签:结果,union,区别,用法,重复,emp,排序,select
From: https://www.cnblogs.com/linhan8888/p/16795817.html

相关文章

  • 补:java中static的用法总结
    关于java在static中的用法,大致可以总结为以下三个模块:其一为:静态变量某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享。可以使用类名.变量名的形式来访......
  • 爬取spa网站与ssr网站的区别
    前言在练习爬虫的时候不清楚spa与ssr网站的区别,都使用bs4直接解析网页的html,结果ssr网站输出结果,spa网站却没有输出结果,特此记录ssr网站:https://ssr1.scrape.center/page......
  • utf8与utf8mb4之间的区别
    刚才在navigate中创建表格时未找到utf8,但看到了比较相似的utf8mb4.所以对这两个编码之间的区别进行了搜索,得到总结,可以将utf8mb4看成utf8的升级版。以下是搜索到的资料......
  • Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别
    构建自己的centos镜像dockerpullcentos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll、vim等等,下面介绍制作一个功能较全的自己的centos镜像。步骤1、编......
  • Nginx rewrite 的last、break、redirect、permanent区别
    Nginxrewrite的last、break、redirect、permanent有四种模式: last和break都会跳转的rewrite的地址,区别是:last跳转后,会重新发起请求再匹配一次location,而break则只......
  • python中sort()函数跟sorted()函数的用法及区别
    一、描述sorted()函数是用来对某个对象进行排序操作的函数sorted()函数与sort()函数的区别是:sort只能用于列表对象(list),而sorted可以对所有可迭代对象进行排序。sort......
  • 文件路径中的斜杠和反斜杠有什么区别
    Unix使用斜杆/作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用斜杆/作为分隔符。Windows由于使用斜杆/作为DOS命令提示符的参数标志了,......
  • 全局变量,局部变量,静态变量,外部变量的区别
    变量分类 作用域分类局部变量(默认是自动局部变量)1.定义:在一个函数内部定义的变量(包括函数形参)2.有效范围:一直在本函数有效3.变量存储:栈内存,函数结束之后自动销毁4.......
  • MVN命令之clean,compile,build,install,package区别
    1、clean:执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件2、compile:编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目......
  • 逆向查找合并单元格中的数据,经典用法!
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......