查找某个字符串第N次出现的位置,比如:字符串"sdf_dsf_dfgdg_ertr_erte",要查找"f_"第二次出现的位置
if exists(select 1 from sysobjects where name='char_index')
drop function char_index go
create function char_index(@string varchar(8000),@char varchar(10),@index smallint)
--@string:待查找字符串,@index:查找位置
returns smallint
as
begin
declare
@i int,--当前找到第@i个
@position int--所在位置
set @position=1;
set @i=0;
while charindex(@char,@string,@position)>0
begin
set @position=charindex(@char,@string,@position)+1;
set @i=@i+1;
if @i=@index
begin
return @position-1;
end
end
return 0;--0表示未找到
end
go
欢迎转载,转载请注明:转载自陈善波 [ http://justwannaloveyou.cnblogs.com/]