拆分字符串为单一字符

如下面这个样子:

 

本函式是学习使用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

 

再来看看执行的结果:

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐