在select查询中使用Union和Union与DISTINCT有什么区别?

时间:2014-10-20 06:42:05

标签: sql-server-2008 sql-server-2008-r2 sql-server-2012

使用SQL Server 2012,使用UNION的两个查询使用UNIONDISTINCT有什么区别?即

SELECT Columns FROM A
UNION
SELECT Columns FROM B

SELECT DISTINCT Columns FROM A
UNION
SELECT DISTINCT Columns FROM B

上述查询之间有什么区别?

2 个答案:

答案 0 :(得分:1)

结果没有区别,因为UNION会消除重复。

FYI UNION ALL按所选顺序保留所有行(如简单追加)。

将DISTINCT添加到UNION的每个(或任一方)可能会更慢,因为它引入了一个毫无意义的步骤(尽管任何值得盐的优化器都会认识到这一点并消除重复的工作)。

答案 1 :(得分:0)

我完全同意波西米亚人所说的!!它们之间没有区别。但是如果你想要选择重复的记录,你也必须通过用union all替换union来改变查询。

以下是证据: - " What is the difference between UNION and UNION ALL?"