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子句來達到類似的效果。