如题
比如2个表,表1(比如是选课代码表)为:
编号 | 字段2 | 字段3 |
001 | 美术 | 360 |
002 | 英语 | 334 |
003 | 体育 | 54 |
004 | 考古 | 56 |
......字段2对应的代码是字段3,如美术对应的代码是360.
表2(比如是学生选课表)为:(比如001学生他选了:美术,英语)
字段1 | 字段2 |
001 | 美术,英语 |
002 | 英语,考古 |
003 | 考古 |
004 | 考古,美术,体育 |
......现在我想把表2里的字段2对应地替换(更新)为表1的字段3代码,能实现吗?
替换后应该是:
字段1 | 字段2 |
001 | 360,334 |
002 | 334,56 |
003 | 56 |
004 | 56,360,54 |
......
谢谢!
比如2个表,表1(比如是选课代码表)为:
编号 | 字段2 | 字段3 |
001 | 美术 | 360 |
002 | 英语 | 334 |
003 | 体育 | 54 |
004 | 考古 | 56 |
......字段2对应的代码是字段3,如美术对应的代码是360.
表2(比如是学生选课表)为:(比如001学生他选了:美术,英语)
字段1 | 字段2 |
001 | 美术,英语 |
002 | 英语,考古 |
003 | 考古 |
004 | 考古,美术,体育 |
......现在我想把表2里的字段2对应地替换(更新)为表1的字段3代码,能实现吗?
替换后应该是:
字段1 | 字段2 |
001 | 360,334 |
002 | 334,56 |
003 | 56 |
004 | 56,360,54 |
......
谢谢!
insert into ta select '001' , '美术' , 360
union all select '002' , '英语' , 334
union all select '003' , '体育' , 54
union all select '004' , '考古' , 56
create table tb (字段1 varchar(5) , 字段2 varchar(100))
insert into tb select '001' , '美术,英语'
union all select '002' , '英语,考古'
union all select '003' , '考古'
union all select '004' , '考古,美术,体育'
create function exchange(@sstr varchar(100))
returns varchar(100)
as
begin
declare @str varchar(100)
set @str=''
select @str=@str+','+RTRIM(字段3) FROM ta where charindex(字段2+',',@sstr+',')>0
select @str=stuff(@str,1,1,'')
return @str
endselect 字段1,dbo.exchange(字段2) from tb
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'dbo.exchange' 无效。
不知道是怎么运行的..还是我的权限问题
对象名 'dbo.exchange' 无效。
insert into ta select '001' , '美术' , 360
union all select '002' , '英语' , 334
union all select '003' , '体育' , 54
union all select '004' , '考古' , 56
create table tb (字段1 varchar(5) , 字段2 varchar(100))
insert into tb select '001' , '美术,英语'
union all select '002' , '英语,考古'
union all select '003' , '考古'
union all select '004' , '考古,美术,体育' go
create function exchange(@sstr varchar(100))
returns varchar(100)
as
begin
declare @str varchar(100)
set @str=''
select @str=@str+','+RTRIM(字段3) FROM ta where charindex(字段2+',',@sstr+',')>0
select @str=stuff(@str,1,1,'')
return @str
end
goselect 字段1,dbo.exchange(字段2) from tbgo
drop table ta,tb
drop function exchange