导航

SQL split 字符串拆分函数

Posted on 2012-06-08 11:26  yiyishuitian  阅读(73)  评论(0)    收藏  举报
CREATE function fn_Split(@char as varchar(max),@key as varchar(50),@index as smallint)  
returns varchar(256)  
as   
begin  
declare @star smallint  --substring中的开始位置  
declare @end smallint  --substring中的结束位置  
declare @string varchar(1000) --程序运行时的实际字符串,我在字符串首尾各增加一个分隔符,以方便后面的操作  
set @string = @key+@char+@key  
if(@index<=len(@char)-len(replace(@char,@key,''))+1) --判断取的字符串是符合法  
 begin  
 while(@index>0)  
  begin  
  select @star = charindex(@key,@string) --取分隔符第一次出现的位置,做为substring的开始位置  
  select @string = stuff(@string,charindex(@key,@string),1,CHAR(128)) --用“€”符号去替换分隔符  
  select @end = charindex(@key,@string) --取分隔符第一次出现的位置,做为substring的结束位置  
  select @index = @index-1  
  end  
 return substring(@string,@star+1,@end-@star-1)   
 end  
return null  
end