日期:2014-05-19  浏览次数:20473 次

更新问题....
table1
id       nameid
1         1,2
2         2,3
3         3

table2
id       name
1         小五
2         哈
3         红
根据table2中的name,更改table1中的nameid字段
希望更新后得到的结果为
table1
id       nameid
1         小五,哈
2         哈,红
3         红



------解决方案--------------------
create table t1(id varchar(4),nameid varchar(40))
insert into t1 select '1 ', '1,2 '
insert into t1 select '2 ', '2,3 '
insert into t1 select '3 ', '3 '

create table t2(id varchar(4),name varchar(40))
insert into t2 select '1 ', '小五 '
insert into t2 select '2 ', '哈 '
insert into t2 select '3 ', '红 '
go

create function f_str(@nameid varchar(40))
returns varchar(40)
as
begin
set @nameid= ', '+@nameid+ ', '
select @nameid=replace(@nameid, ', '+id+ ', ', ', '+name+ ', ') from t2
set @nameid=substring(@nameid,2,len(@nameid)-2)
return @nameid
end
go

select id,dbo.f_str(nameid) as nameid from t1
go

drop function f_str
drop table t1,t2
go

/*
id nameid
----------------
1 小五,哈
2 哈,红
3 红
*/
------解决方案--------------------
楼主少一步更新~~~~~
update t1
set nameid=dbo.f_str(nameid)