查找某字符串在第N次出现的位置

USE [CobraDGServerLog]
GO
/****** 对象:  UserDefinedFunction [dbo].[char_index]    脚本日期: 05/08/2012 16:33:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
create function [dbo].[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 
  

 

你可能感兴趣的:(SQLServer)