集合操作符

集合运算符将两个查询结果组合成单个结果,神通数据库中支持的集合操作符如下表:

表37神通数据库支持的集合操作符

操作符 结果
UNION 查询结果求并集,去掉重复的行
UNION ALL 查询结果求并集,保留重复的行
INTERSECT 查询结果求交集,去掉重复的行
INTERSECT ALL 查询结果求交集,保留重复的行
EXCEPT/MINUS 查询结果求差集,去掉重复的行
EXCEPT/MINUS ALL 查询结果求差集,保留重复的行

上述的几个操作用法基本相同,以INTERSECT操作为列说明其用法:

SELECT * FROM employee WHERE grade > 10

INTERSECT

SELECT * FROM employee WHERE empname <> 'Alice';

所有的集合运算符有相同的优先级。如果SQL语句包含多个集合运算符,在没有用括号指定次序时,按从左至右计算。如果由集合运算符所组合的两查询选择是字符数据,返回值的数据类型按以下说明:

如果两个查询选择的值均为CHAR类型,则返回值为CHAR类型。

如果查询中有一个选择的值为VARCHAR类型,则返回值为VARCHAR类型。