我说怎么这么熟悉,原来是并交差
Union
- 并集 :union: select × from a union (all) select × from b ——aUb
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
Intersect
- 交集: intersect: select × from a intersect select × from b ——a n b
UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。
INTERSECT 的语法如下:
[SQL语句 1]
INTERSECT
[SQL语句 2]
请注意,在 INTERSECT 指令下,不同的值只会被列出一次。
Minus
- 差集: minus: select × from a minus select × from b ——a-b [/size]
做减法操作,只不过它不是传统意义上对数字的减法,而是对查询结果集的减法。
——A minus B就意味着将结果集A去除结果集B中所包含的所有记录后的结果,即在A中存在,而在B中不存在的记录。
——即A minus B将只去除A跟B的交集部分,对于B中存在而A中不存在的记录不会做任何操作,也不会抛出异常。
(1)Oracle的minus是按列进行比较的,所以A能够minus B的前提条件是结果集A和结果集B需要有相同的列数,且相同列索引的列具有相同的数据类型。
(2)此外,Oracle会对minus后的结果集进行去重,即如果A中原本多条相同的记录数在进行A minus B后将会只剩一条对应的记录.
[SQL语句 1]
Minus
[SQL语句 2]
end.