--写个处理函数
create function f_str(
@idlist varchar(1000)
)returns varchar(8000)
as
begin
declare @r varchar(8000)
set @r=replace(','+@idlist+',',',,',',')
select @idlist=replace(@r,','+cast(id as varchar)+',',','+name+',')
from 表1
where charindex(','+cast(id as varchar)+',',@r)>0
return(substring(@r,2,len(@r)-2))
end
go--调用实现查询
select id,mc=dbo.f_str(mc) from 表2

解决方案 »

  1.   

    为什么
    declare @idlist varchar(8000)
    set @idlist='1,2,3,'
    select @idlist=replace(@idlist,cast(id as varchar),mc)
    from 表2
    print(@idlist)
    的结果是我想要的如  aa,bb,cc,

    declare @idlist varchar(8000)
    --set @idlist='1,2,3,' 取消掉
    select @idlist=replace('1,2,3,',cast(id as varchar),mc)
    from 表2
    print(@idlist)
    得出的结果却是这样     1,2,cc,