mssql sqlserver查询指定字符在字符串中出现的次数


摘要:
下文讲述使用sql脚本获取“指定字符串”在字符串中出现的次数的方法分享
实验环境:sql server 2008 R2


实现思路:
使用charindex和substring依次截取存在字符串,依次遍历循环

CREATE FUNCTION [dbo].[fnQueryCharCountFromStr]
(
    @sourceStr    nvarchar(MAX),        --待查找字符串
    @splitStr      nvarchar(max)         --需查找的字符串
)
RETURNS INT
AS
BEGIN
 
 declare @i int =0
 
   while charindex(@splitStr,@sourceStr)  >0
   begin
     set @i = @i+1;
     set @sourceStr =substring(@sourceStr,
                               charindex(@splitStr,@sourceStr)+len(@splitStr),
                               len(@sourceStr)
          )
       
   end
   
 
 return @i ;
 
END
go

/*函数测试
检测 "猫" 字 出现的次数
*/

select [dbo].[fnQueryCharCountFromStr]('猫猫小屋','猫')
go

drop function [dbo].[fnQueryCharCountFromStr]
go