SQL Server Intersect交集与差积
Intersect交集
SQL Server Intersect组合了两个或多个查询的结果集,并返回两个查询输出的不同行。
以下是SQL Server intersect语法:
query_1
INTERSECT
query_2
与union运算符类似,上述语法中的查询必须符合以下规则:
-两个查询必须具有相同的列数和顺序。
-相应列的数据类型必须相同或兼容
在此图中,有两个结果集T1和T2:
-T1结果集包括:1,2,3
-T2 结果集包括:2,3,4
T1和T2结果集的交集返回不同的行,即红色部分2和3
例:
查询成绩表中的课程号和课程表中的 课程号的交集;
select cno
from sc
intersect
select cno
from course
order by cno
得到的结果集如下图所示,
简单的理解为,交集就是返回两个表都有的数据,即两个集合中的相同部分。
SQL Server Except(差积)
Except 比较两个查询的结果集,并返回第一个查询中不是由第二个查询输出的不同行。
也就是,except从一个查询结果中减去另一个查询的结果集。
语法:
query_1
EXCEPT
query_2
要求:
两个查询中列的数量和顺序必须相同。
相应列的数据类型必须相同或兼容