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)中一样的结果了
如果你觉得写的不错,欢迎转载和点赞。 转载时请保留作者署名jilodream/王若伊_恩赐解脱(博客链接:http://www.cnblogs.com/jilodream/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)