首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

更新有关问题.

2012-03-13 
更新问题....table1idnameid11,222,333table2idname1小五2哈3红根据table2中的name,更改table1中的nameid

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

热点排行