使用SQL搜索字符串中的单词数

时间:2011-10-14 11:30:07

标签: sql sql-server database

数据库:Sql Server

我有一个名为page_text的表列,其中包含以下值

  

“我喜欢stackoverflow.com,因为我可以发帖提问   随时回答。 “

使用 SQLQUERY 我想搜索它的 I 的数量。所以在这个字符串中它应该返回4.

我应该可以搜索任何内容。

3 个答案:

答案 0 :(得分:9)

declare @search varchar(10) = 'I'

select len(replace(PageText, @search, @search + '#')) 
- len(PageText) as Count from YourTable 

答案 1 :(得分:0)

基于此代码:http://www.sql-server-helper.com/functions/count-character.aspx

你创建了一个函数:

CREATE FUNCTION [dbo].[ufn_CountSpecificWords] ( @pInput VARCHAR(1000), @pWord VARCHAR(1000) )
RETURNS INT
BEGIN

RETURN (LEN(@pInput) - LEN(REPLACE(@pInput, ' ' + @pWord + ' ', '')))

END
GO
但是,这意味着您使用前导和尾随空格保存字符串,并替换任何其他分隔符,如“,”和“。”有空格。

如果你想要单词的数量或只是单词的外观,你需要重新提问。

答案 2 :(得分:-1)

SELECT (LEN(@Text) - LEN(REPLACE(@Text,@SearchString,''))/(Len(@SearchString))