关系数据库中提供了一个对于汇合的运算符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,过滤出列表中不存在/存在于数据库