为什么 SQL Server SELECT 0 UNION SELECT 0 会产生 1 条记录

Why does SQL Server SELECT 0 UNION SELECT 0 result in 1 record

查询:

select 0
union
select 0

结果:

0

select 0
union all
select 0

产生 2 条记录。不同之处在于 union 会删除重复项,而 union all 不会。

我相信 Union 会删除重复数据,而 Union All 不会。

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

使用 UNION 与 UNION ALL 时会降低性能,因为数据库服务器必须做额外的工作来删除重复的行,但通常您不需要重复项(尤其是在开发报表时)。

Examples