假设您的示例数据表是[Sample Data-set]
并且您将关键字保存在名为[Keyword]
(列名Keyword
)的表中。尝试这个:
WITH CTE AS
(
SELECT Detail.*, [Keywords Matched] = STUFF((select ',' + Keyword
FROM KEYWORD as b
WHERE Detail.[Complaint Description] like '%' + b.Keyword + '%'
ORDER BY Keyword DESC
FOR XML PATH('')), 1,1,'')
FROM [Sample Data-set] as Detail
GROUP BY Detail.BranchID, Detail.Portfolio, Detail.[Complaint Description]
)
SELECT *, len([Keywords Matched]) - len(replace([Keywords Matched], ',','')) + 1 as [Count]
FROM CTE
GROUP BY BranchID, Portfolio, [Complaint Description], [Keywords Matched]