请问如何将"1,2,3,"替换成对应ID的文本"张三,李四,王五"
我有一张明星表
F_ID F_Name
1 刘德华
2 梁咏琪
3 李嘉欣
还有一张电影表
F_ID F_FilmName F_StarID
1 黑马王子 1,3,
2 向左走向右走 2,
电影表中的F_StarID是与明星表的F_ID关联的,明星表中对应演员的ID用“,”分割
现在可不可以用一条sql语句查出电影表的如下结果
F_ID F_FilmName F_StarID
1 黑马王子 刘德华,李嘉欣,
2 向左走向右走 梁咏琪,
------解决方案-------------------- create table A(F_ID int, F_Name varchar(10))
insert A select 1, '刘德华 '
union all select 2, '梁咏琪 '
union all select 3, '李嘉欣 '
create table B(F_ID int, F_FilmName varchar(50), F_StarID varchar(20))
insert B select 1, '黑马王子 ', '1,3, '
union all select 2, '向左走向右走 ', '2, '
create function fun(@F_StarID varchar(20))
returns varchar(200)
as
begin
declare @re varchar(200)
set @re= ' '
select @re=@re+F_Name+ ', '
from A
where charindex( ', '+rtrim(F_ID)+ ', ', ', '+@F_StarID)> 0
return @re
end
select F_ID, F_FilmName, F_StarID=dbo.fun(F_StarID)
from B
--result
F_ID F_FilmName F_StarID
----------- -------------------------------------------------- -------------------------
1 黑马王子 刘德华,李嘉欣,
2 向左走向右走 梁咏琪,
(2 row(s) affected)