union 居然排序了

 
UNION理解
select * from A
union
select * from B
此处用UNION  如果用 * 号的话,A B 中的列的列数要一致方可以。
如果不一致的话,会出现下列错误:
使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。
 

下面我们来了解下UNION和UNION ALL的区别

在数据中,UNIONUNION ALL关键字都是将两个果集合并一个,但两者从使用和效率上来都有所不同。

UNION行表接后会筛选掉重记录,所以在表接后会生的果集行排序运算,除重记录再返回果。实际大部分用中是不会生重记录,最常的是程表与史表UNION

如: select * from test union select * from test_bkSQL在运行先取出两个表的果,再用排序空间进行排序除重记录,最后返回果集,如果表数据量大的可能会致用磁盘进行排序。

UNION ALL只是简单的将两个果合并后就返回。这样,如果返回的两个果集中有重的数据,那返回的果集就会包含重的数据了。

从效率上UNION ALL 要比UNION快很多

所以,如果可以确合并的两个果集中不包含重的数据的,那就使用UNION ALL,如下: select * from test union all select * from test_bk

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值