zoukankan      html  css  js  c++  java
  • SQL语句中:UNION与UNION ALL的区别

    有些人看到题目,瞬间觉得楼主也太弱了吧,这种问题也要拿出来写,这种问题 随便会点sql 的人基本都会 

    Union   是会删除冗余数据

    Union ALL 不会删除冗余数据 将所有的结果都展现给用户

    好吧,这是二者的主要差别,对于一般人来说,知道这个也就足够了。如果较真的话,其实里边有很多细节,比如Union 如果删除冗余数据的话,那么请问最后保留的展示的数据时来源于未删除冗余的结果集中的第一条还是最后一条还是中间某一条。好吧,其实这个我也不清楚,不过感觉用处不大,此处忽略。

      此处 我只是写下我在尝试的时候,发现的一些细节:

    首先Union 会合并上边查询的所有结果集 和接下来的第一个结果集中的 重复数据

    如(1)

    SELECT 1 AS a 
    UNION  ALL
    SELECT 1 AS a 
    UNION  ALL
    SELECT 2 AS a
    UNION
    SELECT 1 AS a 
    则只会显示

    a

    1
    2

    (2)

    SELECT 1 AS a 
    UNION  ALL
    SELECT 1 AS a 
    UNION  ALL
    SELECT 2 AS a
    UNION
    SELECT 1 AS a 
    UNION  ALL
    SELECT 1 AS a

    如这一段代码 

    结果会显示

    a

    1
    2
    1

    为啥没有合并结果集呢  有两个1 呢, 因为按照执行顺序   最后一条的 SELECT 1 AS a 是不会被union作用到的  所以不会被筛选掉

    而如果这样

    (3)

    SELECT 1 AS a 
    UNION  ALL
    SELECT 1 AS a 
    UNION  ALL
    SELECT 2 AS a
    UNION
    (SELECT 1 AS a 
    UNION  ALL
    SELECT 1 AS a)

    结果就为

    a

    1
    2

    就会显示和(1)中一样的结果了

  • 相关阅读:
    AjaxPro.2.dll基本使用
    能够按页号提取word文档文本内容的小程序,由C#实现
    Reflect反编译C#程序
    模态对话框
    【转】Google Chrome如何保存密码口令
    Android 应用的签名的基本原则
    几款keylogger
    对一个利用短链接进行钓鱼行为的小小分析
    2011年10月百度笔试 RD3—第4题
    TCP中有哪些机制保证了可靠传输
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219810.html
Copyright © 2011-2022 走看看