union all和union的区别

最近处理工作中发现明细数据缺失了很多,排查中发现是union和union all使用不当导致,上网搜了一下两者的区别,简单记录一下

 

一、区别1:

1、union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序;

2、union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复;

union all和union的区别

 

 

 

二、区别2:

1、union: 会对获取的结果进行排序操作

2、union all: 不会对获取的结果进行排序操作

union all和union的区别

 

 union all和union的区别

 

 

select * from Table1  
union   
select * from Table2  

  union all和union的区别

 

 

select * from Table1  
union all  
select * from Table2  

 

三、总结

union all只是合并查询结果,并不会进行去重和排序操作,在没有去重的前提下,使用union all的执行效率要比union高

上一篇:浅谈SQL中的UNION关键字


下一篇:SQL注入进阶-测试及利用方法总结