字符串以分隔符分割,以分隔符拆分字符串。
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',',')
结果: