李博祥两个集合相减怎么算_集合运算—union(并集)、 intersect(交集)和except(差集)
⼀、集合运算的基本格式是:
集合查询2
[order by ...]
⼆、集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(⾄少能隐式转换的),最终输出的集合的列名由第⼀个集合的列名来确定。(可以⽤来连接多个结果);集合运算对⾏进⾏⽐较时,认为两个NULL值相等。 金属钝化剂三、union和union all(并集)集合运算
union(并集)集合运算可以将多个查询结果集合并成⼀个结果集。union(隐含distinct,去除重复)、union all。
-
重庆师范大学初等教育学院
-UNION合并两个查询结果集,并且将其中完全重复的数据⾏合并为⼀条
select tName,tSex fromteacherunion
经济问题探索select sName,sSex from student
--UNION ALL合并两个查询结果集,返回所有数据,不会去掉重复的数据
select tName,tSex fromteacherunion all
select sName,sSex from student
Union因为要进⾏重复值扫描,所以效率低,因此如果不是确定要合并重复⾏,那么就⽤UNION ALL
四、intersect(交集)集合运算:删除两个集合中的重复⾏,返回只有在两个集合中都出现的⾏
--先将其中完全重复的数据⾏删除,再对两个查询结果集取其交集
select tName,tSex fromteacherintersect
select sName,sSex from student
ANSI SQL ⽀持带有all选项的intersect集合运算,但SQL Server 2008现在还不⽀持all选项。要想查询交集中的所有数据的办法:
with intersect_all as(select row_number() over(partition by tName,tSex order by (select 0)) asrowNum,
tName,tSexfromteacherintersect
select row_number() over(partition by sName,sSex order by (select 0)) asrowNum,
sName,sSexfromstudent光固化树脂胶
萨拉 帕克斯顿)select tName,tSex fromintersect_all--备注:在排序函数的over⼦句中使⽤order by (select )⽤这种⽅法可以告诉SQL Server不必在意⾏的顺序
五、except(差集)集合运算:先将其中完全重复的数据⾏删除,再返回只在第⼀个集合中出现,在第⼆个集合中不出现的所有⾏。
select tName,tSex fromteacherexcept
select sName,sSex from student
ANSI SQL ⽀持带有all选项的except集合运算,但SQL Server 2008现在还不⽀持all选项。要想查询交集中的所有数据的办法:
with except_all as(select row_number() over(partition by tName,tSex order by (select 0)) asrowNum,
tName,tSexfromteacherexcept