为什么 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。
查询:
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。