例如我有一个字符串作为函数的输入参数中。字符串是用逗号隔开的格式(即'aaa,bbb,ccc,ddd,eee'之类的)。我想这个函数能返回一个记录集,记录集就是
aaa
bbb
ccc
ddd
这四条记录。怎么实现?注意。这个函数要用在视图中。所以不要告诉我用存储过程实现的方法。如果用存储过程来实现的话,我都会,我现在要用create function来实现。
---------------------------------------------------------------
使用表变量
---------------------------------------------------------------
create function GetRecords(@str varchar(2000))
returns @Rec table (Record varchar(40))
as
begin
declare @s varchar(2000)
declare @r varchar(2000)
declare @i varchar(2000)
set @s=@str
set @i=CHARINDEX(',',@s)
while @i>0
begin
set @r=left(@s,@i-1)
insert @Rec values (@R)
set @s=right(@s,len(@s)-@i)
set @i=CHARINDEX(',',@s)
end
if len(@s)>0
insert @Rec values (@s)
return
end
go
调用:
select * from dbo. GetRecords('aaa,bbb,ccc,ddd,eee')
结果:
Record
------
aaa
bbb
ccc
ddd
eee