例:表
A B C D 字段名
1 2 3 4
5 6 7 8
1 W R T
select dbo.f_linkstring('1') ,则可得到
B
2,W
但要修改红色部分,来取字段。
下面的SQL语句可以根据需要修改。
CREATE function [dbo].[f_linkstring](@Swhere varchar(200))
returns varchar(2000)
AS
begin
Declare @lingkstrings varchar(2000)
Declare @tempstrings varchar(200)
set @lingkstrings = ''
Declare MyCursor Cursor For
Select sa200.custpo from by021
left join sa200 on by021.sa200gkey=sa200.gkey
where by020gkey=@Swhere
Open MyCursor
FETCH NEXT FROM MyCursor INTO @tempstrings
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
if(@lingkstrings = '')
set @lingkstrings=@tempstrings
else
set @lingkstrings+=','+@tempstrings
END
FETCH NEXT FROM MyCursor
INTO @tempstrings
end
DEALLOCATE MyCursor
return @lingkstrings
end
GO
另特别提醒大家, SQL中会根据返回值 的类型自动归类。数字类型与字符类型都会生成在FUNCTIONS下的文件夹中的Scalar_valued_Functions中,返回表结构的则会生成在FUNCTIONS下的文件夹中的Table_valued_Functions中,要记得啊要不可找不到生成到哪了啊!