SQL Server中的Union和Union All语句之间的差异及其性能
UNION vs UNION ALL
了解union和union all语句之间的差异及其性能。
UNION
UNION命令用于从两个表中选择相关信息,就像JOIN命令一样。但是,使用UNION命令时,所有选定的列都必须具有相同的数据类型。使用UNION,仅选择不同的值。
UNION ALL
UNION ALL命令等于UNION命令,只是UNION ALL选择所有值。
Union和Union all之间的区别在于,Union all不会消除重复的行,而是仅从符合您查询要求的所有表中提取所有行,并将它们组合到一个表中。
UNION语句有效地对结果集执行SELECT DISTINCT,如果您知道所有返回的记录在您的联合中都是唯一的,请改用UNION ALL,这样可以更快地得到结果。
例子
Table 1 : First,Second,Third,Fourth,Fifth
Table 2 : First,Second,Fifth,Sixth
结果集
UNION: First,Second,Third,Fourth,Fifth,Sixth (这将删除重复的值)
UNION ALL: First,First,Second,Second,Third,Fourth,Fifth,Fifth,Sixth,Sixth (这个将显示重复)