小编典典

UNION 和 UNION ALL 有什么区别?

sql

UNION 和 UNION ALL 有什么区别?


阅读 267

收藏
2022-02-22

共1个答案

小编典典

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

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

要识别重复项,记录必须是可比较的类型以及兼容的类型。这将取决于 SQL 系统。例如,系统可能会截断所有长文本字段以制作短文本字段以进行比较(MS Jet),或者可能拒绝比较二进制字段(ORACLE)

联合示例:

SELECT 'foo' AS bar UNION SELECT 'foo' AS bar

结果:

+-----+
| bar |
+-----+
| foo |
+-----+
1 row in set (0.00 sec)

UNION ALL 示例:

SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar

结果:

+-----+
| bar |
+-----+
| foo |
| foo |
+-----+
2 rows in set (0.00 sec)
2022-02-22