ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > SQL in Excel > SQL联合查询中UNION ALL与UNION有何区别?

SQL联合查询中UNION ALL与UNION有何区别?

作者:绿色风 分类: 时间:2022-08-17 浏览:138
楼主
gvntw
Q:SQL联合查询中UNION ALL与UNION有何区别?
A:UNION ALL是查询所有记录,UNION只查询不重复(指整条记录不重复)的记录,下面两段代码,如果有重复记录,则查询结果就不一样,详见附件:
  1. Sub haveAll()
  2.     Set cn = CreateObject("ADODB.Connection")
  3.     cn.Open "dsn=excel files;dbq=" & ThisWorkbook.FullName
  4.     Sql = "select * from [Sheet1$] union all select * from [Sheet2$]"
  5.     Range("A2").CopyFromRecordset cn.Execute(Sql)
  6.     Set cn = Nothing
  7. End Sub
  1. Sub NoAll()
  2.     Set cn = CreateObject("ADODB.Connection")
  3.     cn.Open "dsn=excel files;dbq=" & ThisWorkbook.FullName
  4.     Sql = "select * from [Sheet1$] union select * from [Sheet2$]"
  5.     Range("E2").CopyFromRecordset cn.Execute(Sql)
  6.     Set cn = Nothing
  7. End Sub

UNION.rar
UNION_For 2003.rar
2楼
BIN_YANG168
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
UNION在运行时先取出几个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。
而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL。
3楼
wise
Union  all
union
一个是直接连接,可以重复,一个是取唯一
4楼
xinger7
感谢分享
5楼
yncxxmj
学习SQL知识,谢谢分享。
6楼
JustinTianyi
一点一点学习语言,谢楼主解疑
7楼
avel
既然UNION ALL 比 UNION 速度要快很多的话,那是否可以先UNION ALL 再用DISTINCT等进行筛选呢?
8楼
LOGO
我也想了解一下union 与union all+distinct 、union all +group by 这三个哪个速度更快些?
9楼
UOY
a
10楼
UOY
a

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap