【问题标题】:Search count of words within a string using SQL使用 SQL 搜索字符串中的单词数
【发布时间】:2011-10-14 11:30:06
【问题描述】:

数据库:Sql Server

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

" 我喜欢 stackoverflow.com,因为我可以发布问题并获得 随时解答。 "

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

我应该可以搜索任何东西。

【问题讨论】:

  • 最初的帖子说结果应该是 2。这将计算单词。现在它说 4 可以计算出场次数。

标签: sql sql-server database


【解决方案1】:
declare @search varchar(10) = 'I'

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

【讨论】:

  • +1 似乎解决了我的答案错过的尾随空格问题。
【解决方案2】:

基于此代码: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

然而,这意味着您使用前导和尾随空格保存字符串,并替换任何其他分隔符,例如“,”和“。”带空格。

如果您想要计算字数或只是单词的外观,则需要重新提出您的问题。

【讨论】:

  • 此代码计算字数,因为它在初始文本中指定
  • 试试这个输入 'H H H H H H H H H H H * 10' 和这个词 'H' 它将返回 15
【解决方案3】:
SELECT (LEN(@Text) - LEN(REPLACE(@Text,@SearchString,''))/(Len(@SearchString))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2013-10-22
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多