Union和Union All的差别

Union和Union All的差别

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

如果我们有一个表Student,包含下面字段与数据:

 

 

首先,我们来看一下UNION的样例:

 

假设换成Union All连接两个结果集,则结果例如以下:

 

 

能够看到,Union和Union All的差别之中的一个在于对反复结果的处理。

 

接下来,我们交换一个两个SELECT语句的顺序,看看结果是如何的。

 

 

能够看到,对于UNION来说,交换两个SELECT语句的顺序后结果仍然是一样的,这是由于UNION会自己主动排序。而UNION ALL在交换了SELECT语句的顺序后结果则不同样,由于UNION ALL不会对结果自己主动进行排序。

 

那么这个自己主动排序的规则是什么呢?我们交换一下SELECT后面选择字段的顺序(前面使用SELECT *相当于SELECT ID,NAME,SCORE),看看结果怎样:

 

 

但是看到,此时是依照字段SCORE来对结果进行排序的(前面SELECT *的时候是依照ID进行排序的)。

 

那么有人会问,假设我想自行控制排序,能不能使用ORDER BY呢?当然能够。只是在写法上有须要注意的地方:

 

 

order by子句必须写在最后一个结果集里,而且其排序规则将改变操作后的排序结果。对于Union、Union All、Intersect、Minus都有效。

 

其它的集合操作符,如Intersect和Minus的操作和Union基本一致,这里一起总结一下:

 

Union,对两个结果集进行并集操作,不包含反复行,同一时候进行默认规则的排序;

Union All,对两个结果集进行并集操作,包含反复行,不进行排序;

Intersect,对两个结果集进行交集操作,不包含反复行,同一时候进行默认规则的排序;

Minus,对两个结果集进行差操作,不包含反复行,同一时候进行默认规则的排序。

 

能够在最后一个结果集中指定Order by子句改变排序方式。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118098.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安装试用国产系统 ——中标麒麟V7.0

    安装试用国产系统 ——中标麒麟V7.0     安装试用国产系统——中标麒麟V7.0首先自然是下载个系统的安装镜像了。下载完镜像,创建一个新的虚拟机 配置好镜像文件,开始安装了 这个倒是和一般的Linux系统没什么区别,反正中标麒麟也是基于Linux的。 加载十几秒,下面开始正式安装:  使用默认的分区就好了。  安装完成,重启一下。  然后是对系统进行简单的配置,结果忘截图了。。。。登陆进去。 中标麒麟系统的默认桌面:是不…

    2022年10月20日
    4
  • scrapy框架中ROBOTSTXT_OBEY = True的说明

    scrapy框架中ROBOTSTXT_OBEY = True的说明在scrapy中创建项目以后,在settings文件中有这样的一条默认开启的语句:#Obeyrobots.txtrulesROBOTSTXT_OBEY=True默认为True,就是要遵守robots.txt的规则,那么robots.txt是个啥?通俗来说,robots.txt是遵循Robot协议的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目…

    2022年4月28日
    40
  • BoundsChecker 使用方法[通俗易懂]

    1前言我在本文中详细介绍了测试工具NuMegaDevpartner(以下简称NuMega)的使用方法。NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——BoundsChecker、TrueCoverage、TrueTime。BoundsChecker为代码检错工具,TrueCoverage为测试覆盖率统计…

    2022年4月8日
    61
  • eBPF 学习路径总结「建议收藏」

    eBPF 学习路径总结「建议收藏」BPF学习路径总结•Feiskyhttps://feisky.xyz/posts/2021-01-06-ebpf-learn-path/目录1.为什么要学习BPF2.BPF应该怎么学习2.1BPF书籍2.2BPF学习样例3.BPF资料汇总3.1介绍系列3.2深入系列3.3Linux资源作者简介:狄卫华,趣头条资深架构师,主要关注云原生相关领域,目前聚焦在BPF技术及实践.1.为什么要学习BPF可以先从ebpf.i.

    2022年9月21日
    4
  • STM32看门狗–窗口看门狗

    STM32看门狗–窗口看门狗stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。图1&n…

    2022年5月30日
    29
  • Virtualbox mouse move in and out and file share with windows[通俗易懂]

    Virtualbox mouse move in and out and file share with windows

    2022年1月22日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号