下文将讲述,数据表之间的合并,求差集 求交集
先建立两张表,如下所示:
create table testA(keyIdA int ,infoA varchar(20),otherA varchar(30))
create table testB(keyIdB int ,infoB varchar(20),otherB varchar(30))
go
insert into testA values(1,'test1','10'),(2,'test2','20'),
(3,'test3','30'),(4,'test4','40'),(5,'test5','50'),(6,'test6','60')
go
insert into testB values(1,'test1','20'),(2,'test2','20'),
(3,'test3','30'),(4,'test4','40'),(5,'test5','80'),(6,'test6','60')
union 关键字交集生成
union 关键字注意事项:
1 union 连接的两个对象需具有相同的结构、列数需相等、相互之间数据类型要么一致、要么可以互相兼容
2 union 所连接的对象 不能使用order by 或 计算列
3 union 生成新的集合,会剔除重复行
例:
select * from testA
union
select * from testB
union all 关键字交集生成
union all同union关键字具有相同的功能,主要区别在于,对象数据组合的方式不同,union all 不会剔除重复的行数据,如下所示:
select * from testA
union all
select * from testB
Except 关键字 差集生成
Except功能:对两个或两个以上集合,进行差集计算,
返回左边集合中存在的元素,并且不存在右边集合的元素
Except 关键字注意事项:
1 Except 连接的两个对象需具有相同的结构、列数需相等、相互之间数据类型要么一致、要么可以互相兼容
2 Except 所连接的对象 不能使用order by 或 计算列
例:
select * from testA
Except
select * from testB
返回在testA对象中,但是不在testB对象中的信息,如下图所示
InterSect 关键字 交集生成
InterSect:对两个或两个以上集合,进行交集计算,
返回左边集合中存在的元素,并且也存在右边集合的元素
InterSect 关键字注意事项:
1 InterSect 连接的两个对象需具有相同的结构、列数需相等、相互之间数据类型要么一致、要么可以互相兼容
2 InterSect 所连接的对象 不能使用order by 或 计算列
例:
select * from testA
InterSect
select * from testB
返回在testA对象中,也在testB对象中的信息,如下图所示