关系数据库中提供了一个对于汇合的运算符 SET 操作符,其中包含以下操作:
●UNION/UNIONALL 并集
●INTERSECT 交加
●MINUS 差集
一、操作符解说
1、UNION
合并两个查问后果集,隐式 DINSTINCT,删除反复行(即取汇合并集)
–合并两个提取表 / 派生表 (derivedtable), 返回后果为:[a,b,c,d,e]
SELECT FC FROM (VALUES(‘a’),(‘b’),(‘c’),(‘e’)) Table1 (FC)
UNION
SELECT FC FROM (VALUES(‘a’),(‘b’),(‘c’),(‘d’)) Table2 (FC)
2、EXCEPT/MINUS
返回呈现在第一个后果集但不呈现在第二个后果集中的所有行(即两汇合相减)
–返回后果为:[e]
SELECT FC FROM (VALUES(‘a’),(‘b’),(‘c’),(‘e’)) Table1 (FC)
EXCEPT
SELECT FC FROM (VALUES(‘a’),(‘b’),(‘c’),(‘d’)) Table2 (FC)
3、INTERSECT
返回第一个查问后果集和第二个查问后果集共有的局部(即取汇合交加)
–返回后果为:[a,b,c]
SELECT FC FROM (VALUES(‘a’),(‘b’),(‘c’),(‘e’)) Table1 (FC)
INTERSECT
SELECT FC FROM (VALUES(‘a’),(‘b’),(‘c’),(‘d’)) Table2 (FC)
二、汇合运算的应用场景
1、应用 UNION 代替 Where 子句中的 OR,查问速度更快
2、应用 EXCEPT 和 INTERSECT, 过滤出列表中不存在 / 存在于数据库