一个典型的自定义函数

例如我有一个字符串作为函数的输入参数中。字符串是用逗号隔开的格式(即'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

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus