create table sjk1(xm varchar(10),gz1 int,gz2 int,gz3 int, zw char(2), id int identity(1,1))
insert sjk1 select 'ss',100,200,0,'aa'
union all select 'ss3',300,500,0,'aa'
union all select 'ss3',400,600,0,'aa'
union all select 'ss3',200,100,0,'bb'
union all select 'ss3',600,800,0,'bb'create table sjk2(id int identity(1,1),lb varchar(10),gs nvarchar(4000))
insert sjk2 
select 'gz1',''
union all select 'gz2',''
union all select 'gz3','gz2+gz1 where zw=aa;gz2-gz1 where zw=bb'
declare @sql nvarchar(4000)
set @sql='update sjk1 set gz3= '
select @sql=@sql+replace(replace(gs,'aa','''aa'''),'bb','''bb''') from sjk2set @sql= replace(@sql,';',' update sjk1 set gz3= ')exec (@sql)
select * from sjk1/*
result:
xm         gz1         gz2         gz3         zw   id          
---------- ----------- ----------- ----------- ---- ----------- 
ss         100         200         300         aa   1
ss3        300         500         800         aa   2
ss3        400         600         1000        aa   3
ss3        200         100         -100        bb   4
ss3        600         800         200         bb   5(5 row(s) affected)
*/drop table sjk1
drop table sjk2