特定字符出现在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
你可以使用replace
和len
来做到这一点。
计算str
中x
字符的数量:
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