一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符CREATE function Get_StrArrayLength

T-SQL 定义分割字符串的函数_分隔符(

T-SQL 定义分割字符串的函数_分隔符 @str varchar(1024), --要分割的字符串

T-SQL 定义分割字符串的函数_分隔符 @split varchar(10) --分隔符号

T-SQL 定义分割字符串的函数_分隔符)

T-SQL 定义分割字符串的函数_分隔符returns int

T-SQL 定义分割字符串的函数_分隔符as

T-SQL 定义分割字符串的函数_分隔符begin

T-SQL 定义分割字符串的函数_分隔符 declare @location int

T-SQL 定义分割字符串的函数_分隔符 declare @start int

T-SQL 定义分割字符串的函数_分隔符 declare @length int

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符 set @str=ltrim(rtrim(@str))

T-SQL 定义分割字符串的函数_分隔符 set @location=charindex(@split,@str)

T-SQL 定义分割字符串的函数_分隔符 set @length=1

T-SQL 定义分割字符串的函数_分隔符 while @location<>0

T-SQL 定义分割字符串的函数_分隔符 begin

T-SQL 定义分割字符串的函数_分隔符 set @start=@location+1

T-SQL 定义分割字符串的函数_分隔符 set @location=charindex(@split,@str,@start)

T-SQL 定义分割字符串的函数_分隔符 set @length=@length+1

T-SQL 定义分割字符串的函数_分隔符 end

T-SQL 定义分割字符串的函数_分隔符 return @length

T-SQL 定义分割字符串的函数_分隔符end

T-SQL 定义分割字符串的函数_分隔符调用示例:select dbo.Get_StrArrayLength('78,1,2,3',',')

T-SQL 定义分割字符串的函数_分隔符返回值:4

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符二、按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符CREATE function Get_StrArrayStrOfIndex

T-SQL 定义分割字符串的函数_分隔符(

T-SQL 定义分割字符串的函数_分隔符 @str varchar(1024), --要分割的字符串

T-SQL 定义分割字符串的函数_分隔符 @split varchar(10), --分隔符号

T-SQL 定义分割字符串的函数_分隔符 @index int --取第几个元素

T-SQL 定义分割字符串的函数_分隔符)

T-SQL 定义分割字符串的函数_分隔符returns varchar(1024)

T-SQL 定义分割字符串的函数_分隔符as

T-SQL 定义分割字符串的函数_分隔符begin

T-SQL 定义分割字符串的函数_分隔符 declare @location int

T-SQL 定义分割字符串的函数_分隔符 declare @start int

T-SQL 定义分割字符串的函数_分隔符 declare @next int

T-SQL 定义分割字符串的函数_分隔符 declare @seed int

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符 set @str=ltrim(rtrim(@str))

T-SQL 定义分割字符串的函数_分隔符 set @start=1

T-SQL 定义分割字符串的函数_分隔符 set @next=1

T-SQL 定义分割字符串的函数_分隔符 set @seed=len(@split)

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符 set @location=charindex(@split,@str)

T-SQL 定义分割字符串的函数_分隔符 while @location<>0 and @index>@next

T-SQL 定义分割字符串的函数_分隔符 begin

T-SQL 定义分割字符串的函数_分隔符 set @start=@location+@seed

T-SQL 定义分割字符串的函数_分隔符 set @location=charindex(@split,@str,@start)

T-SQL 定义分割字符串的函数_分隔符 set @next=@next+1

T-SQL 定义分割字符串的函数_分隔符 end

T-SQL 定义分割字符串的函数_分隔符 if @location =0 select @location =len(@str)+1

T-SQL 定义分割字符串的函数_分隔符 --这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符 return substring(@str,@start,@location-@start)

T-SQL 定义分割字符串的函数_分隔符end

T-SQL 定义分割字符串的函数_分隔符调用示例:select dbo.Get_StrArrayStrOfIndex('8,9,4',',',2)

T-SQL 定义分割字符串的函数_分隔符返回值:9

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符三、结合上边两个函数,象数组一样遍历字符串中的元素

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(100))

T-SQL 定义分割字符串的函数_分隔符 returns @temp table(F1 varchar(100))

T-SQL 定义分割字符串的函数_分隔符 as

T-SQL 定义分割字符串的函数_分隔符 begin

T-SQL 定义分割字符串的函数_分隔符 declare @ch as varchar(100)

T-SQL 定义分割字符串的函数_分隔符 set @SourceSql=@SourceSql+@StrSeprate

T-SQL 定义分割字符串的函数_分隔符 while(@SourceSql<>'')

T-SQL 定义分割字符串的函数_分隔符 begin

T-SQL 定义分割字符串的函数_分隔符 set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)

T-SQL 定义分割字符串的函数_分隔符 insert @temp values(@ch)

T-SQL 定义分割字符串的函数_分隔符 set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')

T-SQL 定义分割字符串的函数_分隔符 end

T-SQL 定义分割字符串的函数_分隔符 return

T-SQL 定义分割字符串的函数_分隔符 end

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符

T-SQL 定义分割字符串的函数_分隔符----调用

T-SQL 定义分割字符串的函数_分隔符 select * from dbo.f_splitstr('1,2,3,4',',')

T-SQL 定义分割字符串的函数_分隔符--结果:

T-SQL 定义分割字符串的函数_分隔符1

T-SQL 定义分割字符串的函数_分隔符2

T-SQL 定义分割字符串的函数_分隔符3

T-SQL 定义分割字符串的函数_分隔符4