create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表1 where num=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go
此类的问题,请参阅本版内容。
明白了,我把set @str=right(@str,len(@str)-1)
去掉,才能显示出预期的结果。。。
但是又有个新的问题出现了:select @str=@str+','+cast(pid as varchar) from 表1 where num=@id
cast函数是返回结果给@str,函数里面的(pid as varchar)定义了返回值的取值字符数。。如果按照上面的来写的话,返回的是,xxj, www
那么怎样才能动态的显示,得出结果 xxj,www呢?
(“即使加上set @str=right(@str,len(@str)-1)这一句,也不能显示楼主所预期的结果”)
我把select @str=@str+','+cast(pid as varchar) from 表1 where num=@id里面的cast(pid as varchar) 限制了他的显示字符的大小。。cast(pid as varchar(4)),才能得到预期的效果。。。但是如果结果中有个字符为klkljklj,那么就只能显示长度为4的字符了。。