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

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

相关文章: