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)中一样的结果了

  • 相关阅读:
    i++与++i
    acm语录
    c# SQL2000 access 远程连接操作
    C# 四舍五入函数
    WINDOWS 2003 远程桌面记录登陆IP
    jquery 资源
    php google baidu 分页
    Solutions to place plus or minus signs to a nonzero digits sequence 123456789 so that result of thus described arithmetic opera
    VB获取网页下文字的链接地址
    php cache 缓存方法类一
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219810.html
Copyright © 2011-2022 走看看