in ms sql 集合参数传递_MSSQL 数据表集合运算方法分享

下文将讲述,数据表之间的合并,求差集 求交集

先建立两张表,如下所示:

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对象中的信息,如下图所示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>