如何在文本字段的长字符串中搜索特定单词并对其进行计数-SQLServer

时间:2019-02-12 06:42:27

标签: sql-server-2008

如果一个单词在一个文本字段的字符串或句子中出现了多少次,我正在尝试对它进行计数。例如: 将@text声明为nvarchar(max) SET @text ='弹跳检查该日期,再次弹跳然后弹跳,然后再次弹跳此日期。检查BOUNCED'

所以,我想计算一下那里有多少“弹跳”。我的目标是查看客户在签发支票时的表现,我们以句子的方式记录下来。

我尝试了以下代码,但显示的内容超出了预期。跳出显示为5,但我的代码为8。

DECLARE @text as nvarchar(max)
SET @text = 'Bounce what will you bounce do that changed bounce bounce bounce'

SELECT DISTINCT
ISNULL(((Datalength(@text) - Datalength(REPLACE(CAST(@text as nvarchar(max)), 'BOUNCE',4)))/Datalength('BOUNCE')),0) [BounceRate]

我希望输出为5

1 个答案:

答案 0 :(得分:1)

DECLARE @text AS NVARCHAR(max)

SET @text ='弹跳,您将弹跳什么,改变弹跳弹跳的弹跳力'

SELECT(len(@text)-len(replace(@text,'bounce',``))))/ len('bounce')

你可以试试吗