SQL:将列拆分为多个单词以搜索用户输入

Don*_*mas 10 sql sql-server stored-procedures

我想比较用户输入中的单个单词与表格中某列的单个单词.

例如,考虑我的表中的这些行:

ID Name
1  Jack Nicholson
2  Henry Jack Blueberry
3  Pontiac Riddleson Jack
Run Code Online (Sandbox Code Playgroud)

考虑用户的输入是"庞蒂亚克杰克".我想为每个匹配分配权重/等级,所以我不能使用毯子LIKE(WHERE Name LIKE @SearchString).

如果庞蒂亚克出现在任何一排,我想给它10分.杰克的每场比赛得到另外10分等等.因此第3行得到20分,第1行和第2行得到10分.

我将用户输入分成单个单词,并将它们存储到临时表@SearchWords(Word)中.

但我无法找到一种方法来获得一个允许我组合它的SELECT语句.也许我会以错误的方式解决这个问题?

干杯,WT

Lit*_*les 1

对于 SQL Server,请尝试以下操作:

SELECT Word, COUNT(Word) * 10 AS WordCount
FROM SourceTable
INNER JOIN SearchWords ON CHARINDEX(SearchWords.Word, SourceTable.Name) > 0
GROUP BY Word
Run Code Online (Sandbox Code Playgroud)