UNION and UNION All

默认 2010-08-13 18:54

         首先讲一下UNION的工作原理,当使用UNION语句时,它的功能与在结果集上SELECT DISTINCT类似,也就是说使用UNION时它会首先合并两个结果集,然后执行一个类似于SELECT DISTINCT的操作,以避免重复行的出现。

         这个过程在两上结果集没有任何重复行的情况下也会进行DISTINCT处理,所以如果我们确认在UNION的两个结果集确实存在重复行,并且要消除重复行的出现时,就可以使用UNION.

         从另一方面来说,如果我们知道在结果集中并不会存在重复行,或者说出现重复行对我们的应用程序没有什么影响时,我们应该使用UNION ALL语句来替代 UNION语句,UNION ALL和UNION相比的优点在于它并不会对两个结果集进行SELECT DISTINCT操作,这样可以节省SQL Server 的资源使用。


Leave a Reply