特定字符出现在string中的次数

是否有MS SQL Server函数来计算特定字符出现在string中的次数?

这个没有直接的function,但是你可以用一个replace来实现:

declare @myvar varchar(20) set @myvar = 'Hello World' select len(@myvar) - len(replace(@myvar,'o','')) 

基本上这告诉你有多less个字符被删除,因此有多less个字符被删除。

额外:

上面的扩展可以通过除以正被search的string的长度来计算一个多string的出现次数。 例如:

 declare @myvar varchar(max), @tocount varchar(20) set @myvar = 'Hello World, Hello World' set @tocount = 'lo' select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount) 

在更换序列后查看string的长度

 declare @s varchar(10) = 'aabaacaa' select len(@s) - len(replace(@s, 'a', '')) >>6 

你可以使用replacelen来做到这一点。

计算strx字符的数量:

 len(str) - len(replace(str, 'x', '')) 

尝试一下:

 declare @t nvarchar(max) set @t='aaaa' select len(@t)-len(replace(@t,'a','')) 

函数为sql服务器:

 CREATE function NTSGetCinC(@Cadena nvarchar(4000), @UnChar nvarchar(100)) Returns int as begin declare @t1 int declare @t2 int declare @t3 int set @t1 = len(@Cadena) set @t2 = len(replace(@Cadena,@UnChar,'')) set @t3 = len(@UnChar) return (@t1 - @t2) / @t3 end 

代码为Visual Basic和其他:

 Public Function NTSCuentaChars(Texto As String, CharAContar As String) As Long NTSCuentaChars = (Len(Texto) - Len(Replace(Texto, CharAContar, ""))) / Len(CharAContar) End Function