sql server 查找指定字符串的位置

create function fn_find(@find varchar(8000), @str varchar(8000), @n smallint)  
    returns int  
as  
begin  
    if @n < 1 return (0)  
    declare @start smallint, @count smallint, @index smallint, @len smallint  
    set @index = charindex(@find, @str)  
    if @index = 0 return (0)  
    else select @count = 1, @len = len(@find)  
    while @index > 0 and @count < @n  
        begin  
            set @start = @index + @len  
            select @index = charindex(@find, @str, @start), @count = @count + 1  
        end  
    if @count < @n set @index = 0  
    return (@index)  
end  
go  
  
  
declare @str varchar(100)  
set @str=‘A,B,C,D,A,B,C,D,C,D,B,A,C,E‘  
  
select dbo.fn_find(‘A‘,@str,1) as one, dbo.fn_find(‘A‘,@str,2) as two, dbo.fn_find(‘A‘,@str,3) as three, dbo.fn_find(‘A‘,@str,4) as four  
/*  
one         two         three       four          
----------- ----------- ----------- -----------   
1           9           23          0  
*/

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。