乐趣区

关于gaussdb:GaussDB中的SET操作符用法详解

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

退出移动版