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

例如:
查找'A,' 在'A,B,C,D,A,B,C,D,C,D,B,A,C,E,'中第二次出现的位置
怎么实现,SQL 中有这样的函数吗?

 

SQL code
/*
方法很多,这里简单写一个
返回@find在@str中第(@n)次出现的位置。没有第(@n)次返回0。
*/
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
*/

 

  

 

时间: 2024-10-31 17:18:05

sqlserver 查找某个字符在字符串中第N次出现的位置的相关文章

JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)_基础知识

JavaScript lastIndexOf 方法 lastIndexOf 方法用于计算指定的字符串在整个字符串中最后一次出现的位置,并返回该数值.其语法如下: 复制代码 代码如下: str_object.lastIndexOf( search, start ) 参数说明: 参数 说明 str_object 要操作的字符串(对象) search 必需.要检索的字符串 start 可选.指定开始检索的位置,如省略该参数,则将从字符串的最后一个字符开始检索 提示:字符串是从 0 开始计数的. las

C语言中查找字符在字符串中出现的位置的方法_C 语言

C语言strchr()函数:查找某字符在字符串中首次出现的位置 头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为: char * strchr (const char *str, int c); [参数]str 为要查找的字符串,c 为要查找的字符. strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回. 注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个

C++查找字符在字符串中出现的次数

查找字符在字符串中出现的次数: int count1(char* str,char* s) { char* s1; char* s2; int count = 0; while(*str!='\0') { s1 = str; s2 = s; while(*s2 == *s1&&(*s2!='\0')&&(*s1! ='0')) { s2++; s1++; } if(*s2 == '\0') count++; str++; } return count; }

判断某个字符在一个字符串中是否存在的js代码

 这篇文章主要介绍了判断某个字符在一个字符串中是否存在的方法,需要的朋友可以参考下  代码如下: $(function(){  var str="sunny,woo";  var sear=new RegExp(',');  if(sear.test(str))  {  alert('Yes');  }  var tag=',';  if(str.indexOf(tag)!=-1)  {  alert('Yes');  }  });     

string类中,如何获得一个字符在字符串中最后出现的位置

问题描述 string类中,如何获得一个字符在字符串中最后出现的位置.如Stringpath="c:\java\jsp\A.java";position=?//获取path中最后出现\的位置?处的代码如何填.谢谢大家的帮忙. 解决方案 解决方案二:position=path.lastIndexOf("\");解决方案三:试试这个:publicclassTryString{publicstaticvoidmain(String[]args){Stringpath=&q

字符在字符串中的个数-如何统计字符串中某个字符的个数

问题描述 如何统计字符串中某个字符的个数 比如如何计算字符串 String str="oiwerwwoijjjwwnlamxjswwkxmn2w"中w字符在其中的个数? 解决方案 如果针对某个字符的话,比较简单的就是 String str="oiwerwwoijjjwwnlamxjswwkxmn2w" str.replaceAll("w","").length-str.length 解决方案二: 方法很多,最直接的,遍历,然后

SqlServer中用exec处理sql字符串中含有变量的小例子_MsSql

SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@(已解决!) 复制代码 代码如下: declare @tssj nvarchar(100)  -- 外部变量declare @Sql_Sql nvarchar(100) -- 存sql字符串变量       set @Sql_Sql =N'select @tssj=jpk from b where bzmc=''中国''' EXEC sp_executesql @Sql_Sql,N'@tssj int outpu

SqlServer中用exec处理sql字符串中含有变量的小例子

SqlServer中,用exec处理sql字符串中含有变量,提示:必须声明标量变量@(已解决!) 复制代码 代码如下:declare @tssj nvarchar(100)  -- 外部变量declare @Sql_Sql nvarchar(100) -- 存sql字符串变量 set @Sql_Sql =N'select @tssj=jpk from b where bzmc=''中国''' EXEC sp_executesql @Sql_Sql,N'@tssj int output',@tss

判断某个字符在一个字符串中是否存在的js代码_javascript技巧

复制代码 代码如下: $(function(){ var str="sunny,woo"; var sear=new RegExp(','); if(sear.test(str)) { alert('Yes'); } var tag=','; if(str.indexOf(tag)!=-1) { alert('Yes'); } });