sqlserver中用不重复的条件更新两个表对应字段字段。

表T1和表T2,表T2的F23字段用表T1的F3字段更新,条件是T1.F2=T2.F22并且只有T1.F2和T2.F22是一一对应,T1只有一条记录和T2对应,例子如下:


create table t1(f1 int,f2 varchar(10),f3 varchar(10));

create table t2(f21 int,f22 varchar(10),f23 varchar(10));


insert into t1 values(1,'111','abc');
insert into t1 values(2,'111','abc');
insert into t1 values(3,'222','ddd');


insert into t2 values(1,'111',null);
insert into t2 values(2,'222',null);


update t2 set t2.f23 = t1.f3
from t1,t2
where t1.f2=t2.f22 and exists(select t3.f2,COUNT(*) from t1 as t3 where t3.f2=t1.f2 group by t3.f2 having COUNT(*) =1 );


select * from t1;
select * from t2;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值