create function dbo.fn_split(
@in_source nvarchar(4000), -- 被分割字符串
@in_delimiter nvarchar(10) -- 分割符
)
returns @temp table(seq int identity, value nvarchar(100))
as
begin
declare @i int, @len int
set @in_source = ltrim(@in_source)
set @i = charindex(@in_delimiter, @in_source)
set @len = len(@in_delimiter)
while @i > = 1
begin
insert @temp values( ltrim((left(@in_source, @i - 1))) )
set @in_source = substring(@in_source, @i + @len, len(@in_source) - @i)
set @i = charindex(@in_delimiter, @in_source)
end
if @in_source <> '\'
insert @temp values( ltrim(@in_source))
return
end
使用
select * from dbo.fn_split('test1,test2,test3',',')
结果