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