自定义一个函数,分隔一个以分隔符的隔开字符串,例如把‘1,3,5,7,9’ 变成 数字1 3 5 7 9的结果集。
自定义标值函数:
create function [dbo].[my_split](@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(a varchar(100)) --实现split功能 的函数 as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSeprate,@SourceSql) while @i>=1 begin insert @temp values(left(@SourceSql,@i-1)) set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i) set @i=charindex(@StrSeprate,@SourceSql) end if @SourceSql<>'' insert @temp values(@SourceSql) return end
测试:
declare @sql nvarchar(2000) set @sql='1,3,5,7,9' select * from Northwind.dbo.my_split(@sql,',')
运行结果截图: