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