为什么SQL Server SELECT 0 UNION SELECT 0导致1条记录

时间:2015-01-08 15:55:45

标签: sql sql-server

查询:

select 0
union
select 0

结果:

  

0

3 个答案:

答案 0 :(得分:10)

select 0
union all
select 0

产生2条记录。区别在于union删除了重复项,union all没有删除重复项。

答案 1 :(得分:3)

UNION删除重复记录(结果中的所有列都相同),UNION ALL不会。

使用UNION和UNION ALL时会出现性能损失,因为数据库服务器必须执行其他工作才能删除重复的行,但通常您不需要重复项(特别是在开发报表时)。

请参阅Examples

答案 2 :(得分:0)

我相信联盟会减少为什么Union All没有。