declare @find as nvarchar(40); set @find = N'n'; select companyname,(LEN(companyname+'*')) - LEN(replace(companyname,@find,'')+'*'))/LEN(@find) as cnt from dbo.customers
它的逻辑是这样的,先把字符串中的所有@find都删除(也就是用''替换掉),然后检查得到的字符串比原来短多少,
这样就可以计算出@find在字符串中出现的次数.需要注意的是,在计算它们的长度时为每个字符串添加一个"*"以
避免当字符串包含尾随空格时得到错误的长度
本文介绍了一种使用SQL来计算一个特定字符或字符串在另一字符串中出现次数的方法。通过替换和字符串长度比较的方式实现了这一功能,并特别注意了处理尾随空格的情况。

被折叠的 条评论
为什么被折叠?



