Sql server 从SQL表中查找包含字符串的字数

Sql server 从SQL表中查找包含字符串的字数,sql-server,sql-server-2008,text-search,Sql Server,Sql Server 2008,Text Search,我被要求搜索一个特定的字符串,并生成一个列表,其中一个描述字段包含该字符串。没问题。在本例中,我使用了“%man%”,它给出了一组包含“man”的记录。这也给出了“管理”、“管理”、“人类”等的出现次数。我想找到一个记录集,其中包含找到的单词列表,包括“人”和出现次数。这在SQL 2008中可能吗?如果是这样,你能给我指出正确的方向吗?你的问题很模糊,根本不清楚你想要什么样的输出。看看这样的事情是否能为你指明正确的方向 declare @ValueToFind varchar(20) = 'ma

我被要求搜索一个特定的字符串,并生成一个列表,其中一个描述字段包含该字符串。没问题。在本例中,我使用了“%man%”,它给出了一组包含“man”的记录。这也给出了“管理”、“管理”、“人类”等的出现次数。我想找到一个记录集,其中包含找到的单词列表,包括“人”和出现次数。这在SQL 2008中可能吗?如果是这样,你能给我指出正确的方向吗?

你的问题很模糊,根本不清楚你想要什么样的输出。看看这样的事情是否能为你指明正确的方向

declare @ValueToFind varchar(20) = 'man'

select * 
    , ABS((DATALENGTH(replace(SomeValue, @ValueToFind, ''))) - DATALENGTH(SomeValue)) / DATALENGTH(@ValueToFind)
from (Values('manage manager manman'), ('management'), ('mankind manfred'), ('none here')) v(SomeValue)
那么:

CREATE TABLE #temp
(
[Description] varchar(250)
)

INSERT INTO #temp
VALUES
    ('a small step for mankind'),
    ('my manager says'),
    ('you might manage to purchase this'),
    ('try to manage this'),
    ('he was a small man'),
    ('no woman no cry'),
    ('no words can describe')



;
WITH CTE
As
(
    SELECT *, CHARINDEX('man',[Description] ) startPos, CHARINDEX(' ', [Description], CHARINDEX('man',[Description] )) endPos
    FROM #temp
    WHERE [Description] LIKE '%man%'
),
WordCTE
AS
(
    SELECT [Description], 
            CASE 
                WHEN endPos = 0 THEN SUBSTRING([Description], startpos, 100) 
                ELSE SUBSTRING([Description], startpos, endPos - startPos) 
            END AS [Word]
    FROM CTE
)
SELECT [Word], COUNT(*)
FROM WordCTE
GROUP BY [Word]

我想你想要这样的东西

create table Words(text varchar(50))

insert into Words Values('man')
insert into Words Values('management')
insert into Words Values('man')
insert into Words Values('management')
insert into Words Values('mankind')
insert into Words Values('manpower')

select temptable.text, count(temptable.text) as 'count'
from
(select text 
from Words
where text like '%man%') as temptable
group by temptable.text

你如何定义一个“单词”?试着添加样本数据和预期输出,你是说你想要对列表中的每个不同单词进行计数,还是仅仅在单个描述中对每个命中进行计数。答案通常涉及到哪个网站有自己的分词器和更好的搜索功能。语言分析最终比最初看起来要复杂得多。