UNION、INTERSECT和EXCEPT
更新时间:
UNION、INTERSECT和EXCEPT用于将多个查询结果集进行组合,从而得到一个最终结果。
语法
query
{ UNION [ ALL ] | INTERSECT | EXCEPT }
query 参数
UNION:返回两个查询表达式的集合运算。UNION ALL:ALL关键字用于保留UNION中产生的重复行。INTERSECT:返回只有在两个集合中同时出现的行,返回结果将删除两个集合中的重复行。EXCEPT:先删除两个集合中重复的数据行,返回只在第一个集合中出现且不在第二个集合中出现的所有行。
计算顺序
UNION和EXCEPT集合运算符为左关联,如果未使用圆括号来改变计算顺序,则按照从左到右的顺序进行集合运算。例如,以下查询中,首先计算
T1和T2的UNION,然后对UNION结果执行EXCEPT操作。select * from t1 union select * from t2 except select * from t3 order by c1;在同一查询中,组合使用集合运算符时,
INTERSECT运算符优先于UNION和EXCEPT运算符。例如,以下查询先计算
T2和T3的交集,然后将计算得到的结果与T1进行并集。select * from t1 union select * from t2 intersect select * from t3 order by c1;可以使用圆括号改变集合运算符的计算顺序。
以下示例中,将
T1和T2的并集结果与T3执行交集运算。(select * from t1 union select * from t2) intersect (select * from t3) order by c1;
该文章对您有帮助吗?