Union/Intersect/Minus
Union
并集 :union: select × from A union (all) select × from B
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
默认地,UNION 操作符选取两条SQL中查询出的所有结果的集合,重复的值只会出现一次。如果允许重复的值,请使用 UNION ALL。
Intersect
交集: intersect: select × from a intersect select × from b ——a n b
INTERSECT 的语法如下:
[SQL语句 1]
INTERSECT
[SQL语句 2]
INTERSECT操作符筛选出两条SQL中相同的值。
Minus
差集: minus: select × from a minus select × from b
用集合表示如下 A={1,2,3,4,5} B={1,2,5}
select a MINUS b =>c{3,4}
select aa.id from aa MINUS select bb.id from bb;
可以理解为相当于
select aa.id from aa where aa.id not in (select bb.id from bb);
值得注意的是,Oracle会对minus后的结果集进行去重,即如果A中原本多条相同的记录数在进行A minus B后将会只剩一条对应的记录.