3张表 a表字段 qymc zch nbxh yhid
b表字段 qymc zch nbxh
c表字段 yhid zta.nbxh=b.nbxh a.yhid=c.yhid
求一个update语句 要求找出a表中zch与b表zch不一样的记录,并且把a表的zch更新为b表的zch 并且要求c表的zt<>'3'
b表字段 qymc zch nbxh
c表字段 yhid zta.nbxh=b.nbxh a.yhid=c.yhid
求一个update语句 要求找出a表中zch与b表zch不一样的记录,并且把a表的zch更新为b表的zch 并且要求c表的zt<>'3'
Update a a
Set zch = nvl((Select zch
From b
Where b.nbxh = a.nbxh
And b.zch <> a.zch
And Exists (Select 1
From c
Where a.yhid = c.yhid
And c.zt <> '3'))
,a.zch)
where a.nbxh=b.nbxh and a.yhid=c.yhid
and c.zt<>'3'
and a.zch<>b.zch
//要求找出a表中zch与b表zch不一样的记录,并且把a表的zch更新为b表的zch
//实际上就是把a表的zch更新为b表的zch,因为相同的也更新不变化update a
set zch=(select b.zch from b where a.nbxh=b.nbxh)
where exists (select 1 from c where a.yhid=c.yhid and c.zt <>'3')