拆分字符串为单一字符
程序员文章站
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
上面的自定义的函数,在执行之后所得到的结果,并没有按照输入的顺序排列。
那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
再来看看执行的结果: