欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

拆分字符串为单一字符

程序员文章站 2022-03-30 17:50:39
如下面这个样子: 本函式是学习使用WHILE以及SUBSTRING的应用: CREATE FUNCTION [dbo].[svf_SplitStringToSingleCharacter]( @DataSource NVARCHAR(4000) ) RETURNS NVARCHAR(4000) AS ......

如下面这个样子:

 

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

 

再来看看执行的结果: