如下面这个样子:
本函式是学习使用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
再来看看执行的结果: