UNION、UNION ALL、INTERSECT、MINUS?
说明
- UNION:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
- IUNION ALL:对两个结果集进行并集操作,包括重复行,不进行排序;
- INTERSECT:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
- MINUS:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
适用性
- UNION 和 UNION ALL: 这两个在大多数现代的关系型数据库管理系统中都是通用的,包括 Oracle, MySQL, SQL Server, PostgreSQL, DB2 等。
- INTERSECT: 在 Oracle, SQL Server, DB2 中是可用的,但在 MySQL 和 PostgreSQL 中则不直接支持。在不支持的数据库中,可以通过使用IN或EXISTS子句来模拟INTERSECT的功能。
- MINUS: MINUS在 Oracle 和 DB2 中是可用的,但在 MySQL 和 PostgreSQL 中则不直接支持。同样地,可以在不支持的数据库中通过其他方法如LEFT JOIN和WHERE子句来达到类似的效果。