SQL Server实现字符串分割的功能,类似split()的效果

字符串以分隔符分割,以分隔符拆分字符串。

Create FUNCTION [dbo].[split](@String varchar(8000), @Delimiter char(1))
returns @temptable TABLE (items varchar(8000))
as
begin
    declare @idx int
    declare @slice varchar(8000)
    select @idx = 1
    if len(@String)<1 or @String is null 
    return
    while @idx!= 0
    begin
        set @idx =charindex(@Delimiter,@String)
        if @idx!=0
            set @slice =left(@String,@idx - 1)
        else
            set @slice = @String
        if(len(@slice)>0)
            insert into @temptable(items) values(@slice)
        else
			insert into @temptable(items) values('空')
        set @String =right(@String,len(@String)- @idx)
        if len(@String)= 0 
        begin
			if @idx!=0
			begin
				insert into @temptable(items) values('空')
				break
			end
			else
				break
        end	
    end
return
end

测试:

select * from dbo.split('Tom,,John,Ann',',')

结果:
在这里插入图片描述

发布了23 篇原创文章 · 获赞 2 · 访问量 4258

猜你喜欢

转载自blog.csdn.net/weixin_45616483/article/details/100651239