1

特定の文字列を検索し、説明フィールドにその文字列が含まれるリストを作成するように依頼されました。問題ない。この場合、LIKE '%man%' を使用すると、'man' を含む一連のレコードが得られました。これは、'manage'、'management'、'mankind' などの出現も示します。'man' を含む単語のリストと出現回数を含むレコードセットを探したいと思います。これは SQL 2008 で可能ですか? もしそうなら、あなたは私を正しい方向に向けることができますか?

4

3 に答える 3

0

いかがですか:

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]
于 2014-12-18T17:43:38.810 に答える
0

こんなものが欲しかったんだと思います。

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

http://www.sqlfiddle.com/#!3/a6cdc/1

于 2014-12-18T17:56:27.480 に答える