读书人

更新有关问题.

发布时间: 2012-03-13 11:21:11 作者: rapoo

更新问题....
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

/*
idnameid
----------------
1小五,哈
2哈,红
3红
*/
[解决办法]
楼主少一步更新~~~~~
update t1
set nameid=dbo.f_str(nameid)

读书人网 >SQL Server

热点推荐