如下面这个样子:
本函式是学习使用while以及substring的应用:
create function [dbo].[svf_splitstringtosinglecharacter](
@datasource nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @rtvresult nvarchar(4000),@length int
set @length = len(isnull(@datasource,''))
if @length = 0
set @rtvresult = n''
else
begin
while @length > 0
begin
set @rtvresult = isnull(@rtvresult + ',',n'') + '''' + substring(@datasource,@length,1) + ''''
set @length = @length - 1
end
end
return @rtvresult
end
source code
上面的自定义的函数,在执行之后所得到的结果,并没有按照输入的顺序排列。
那insus.net可以修改一下:
create function [dbo].[svf_splitstringtosinglecharacter1](
@datasource nvarchar(4000)
)
returns nvarchar(4000)
as
begin
declare @rtvresult nvarchar(4000),@length int
set @length = len(isnull(@datasource,''))
if @length = 0
set @rtvresult = n''
else
begin
declare @i int = 1
while @i <= @length
begin
set @rtvresult = isnull(@rtvresult + ',',n'') + '''' + substring(@datasource,1,1) + ''''
set @datasource = stuff(@datasource,1,1,n'')
set @i = @i + 1
end
end
return @rtvresult
end
go
source code
再来看看执行的结果: