Split 表函数将一个字符串按指定分隔符进行分割,返回一个表。
--Split 表函数将一个字符串按指定分隔符进行分割,返回一个表。 create function split( @string varchar(255),--待分割字符串 @separator varchar(255)--分割符 )returns @array table(item varchar(255)) as begin declare @begin int,@end int,@item varchar(255) set @begin = 1 set @end=charindex(@separator,@string,@begin) while(@end<>0) begin set @item = substring(@string,@begin,@end-@begin) insert into @array(item) values(@item) set @begin = @end+1 set @end=charindex(@separator,@string,@begin) end set @item = substring(@string,@begin,len(@string)+1-@begin) if (len(@item)>0) insert into @array(item) values(substring(@string,@begin,len(@string)+1-@begin)) return end
分割结果仿照Java的字符串方法split。
测试一:
select * from dbo.split('a,b,c,d',',')
或者(待分割字符串末尾多了个逗号)
select * from dbo.split('a,b,c,d,',',')
结果:
测试二:
select * from dbo.split(',a,,b,c,d',',')
结果: