使用SQL Server计算句子/段落中的特定字母

时间:2014-02-02 14:56:35

标签: c# sql sql-server-2008-r2

我有一句话,“约翰非常擅长SQL Server和Dot NET,佛罗里达来自法国。”我想用SQL Server阅读这句话并计算有多少f。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您可以通过将字母替换为长一个字符的字符串,测量长度并与原始长度进行比较来实现此目的:

select (len(replace(sentence, 'f', 'ff')) - len(sentence)) as NumFs
编辑(对Soner的回应):

replace的区分大小写取决于输入的排序规则(请参阅here)。如果您需要特定区分大小写,请使用collate

至于为什么我这样写。有两个原因。我过去常常按照你在评论中的建议进行计算。但后来我意识到表达(替换)的重要部分是最后的。通常,这意味着我无法轻易看到表达式正在做什么。

其次,当你想要计算比单个字符更长的东西时,用''替换是不对的 - 你要么必须除以长度,要么找一个更短的字符串。

因此,上面的方法是我一般用于计算字符串中子字符串的方法。