我有一句话,“约翰非常擅长SQL Server和Dot NET,佛罗里达来自法国。”我想用SQL Server阅读这句话并计算有多少f。任何人都可以帮助我吗?
答案 0 :(得分:2)
您可以通过将字母替换为长一个字符的字符串,测量长度并与原始长度进行比较来实现此目的:
select (len(replace(sentence, 'f', 'ff')) - len(sentence)) as NumFs
编辑(对Soner的回应):
replace
的区分大小写取决于输入的排序规则(请参阅here)。如果您需要特定区分大小写,请使用collate
。
至于为什么我这样写。有两个原因。我过去常常按照你在评论中的建议进行计算。但后来我意识到表达(替换)的重要部分是最后的。通常,这意味着我无法轻易看到表达式正在做什么。
其次,当你想要计算比单个字符更长的东西时,用''
替换是不对的 - 你要么必须除以长度,要么找一个更短的字符串。
因此,上面的方法是我一般用于计算字符串中子字符串的方法。