SQL选择结果与FREETEXT /返回行出现次数多



我有以下SQL Server搜索词:

我想买一部三星手机,型号应该是Galaxy S9

表:

<表类>ID文本tbody><<tr>1三星s82celular s93samsung galaxy s94galasxy s10

级别可以这样做:

select t.*
from t cross apply
(select count(*) as cnt
from string_split(t.text, ' ') s1 cross join
string_split(@sentence, ' ') s2
on s1.value = s2.value
) ss
order by ss.cnt desc;

指出:

  • 这只查找两个短语中的精确单词匹配。
  • 这要求用空格分隔单词,无论是在text还是在"句子"中。
  • 重复的单词可能会通过计数。如果需要,可以对其进行管理(例如通过使用count(distinct s1.value) as cnt)。

有很多选择项的方法。例如:

SELECT 'I want to buy a ' + A.BrandName + ' cellphone and the model should be ' + A.ModelName 
FROM (
SELECT SUBSTRING(TEXT, 1, LEN('sumsung')) AS BrandName
, SUBSTRING(TEXT, LEN(SUBSTRING(TEXT, 1, LEN('sumsung')))+1, LEN(TEXT)) AS ModelName
FROM TABLE_NAME
WHERE TEXT LIKE N'%samsung%' AND TEXT LIKE N' %galaxy s9%'
) AS A

最新更新