sql实现split函数的脚本

复制代码 代码如下:

–创建一个函数,函数中有两个参数

create function [dbo].[splittotable]

(

@splitstring nvarchar(max),–输入的字符串

@separator nvarchar(10)=’ ‘–分割条件

)

–返回的数据为一个表

returns @splitstringstable table

(

[id] int identity(1,1),

[value] nvarchar(max)

)

as

begin

declare @currentindex int;–当前索引

declare @nextindex int;–下一个索引

declare @returntext nvarchar(max);–返回内容

select @currentindex=1;–设置当前索引初始值为1

–当当前索引小于字符串长度时,执行循环体

while(@currentindex<=len(@splitstring))

begin

–charindex函数返回字符或者字符串在另一个字符串中的起始位置。charindex函数调用方法如下:

–charindex ( expression1 , expression2 [ , start_location ] )

— expression1是要到expression2中寻找的字符中,start_location是charindex函数开始在expression2中找expression1的位置。

select @nextindex=charindex(@separator,@splitstring,@currentindex);

if(@nextindex=0 or @nextindex is null)

select @nextindex=len(@splitstring)+1;

–函数用法:substring ( expression, start, length )

select @returntext=substring(@splitstring,@currentindex,@nextindex-@currentindex);

insert into @splitstringstable([value]) values(@returntext);

select @currentindex=@nextindex+1;

end

return;

end

go

–测试函数

select * from dbo.splittotable(‘a,b,c,d,e,f,g’, ‘,’)

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

相关推荐