SQL Server返回字符串中包含的列值

时间:2018-04-20 22:48:10

标签: sql-server

我想我在这里错过了一些简单的事情......

例如,给定单词absolutely,返回行

absolute
absol
ab
absolutely

我尝试了CONTAINS

SELECT word
FROM [dbo].[SentimentModel1] 
WHERE contains(search,'absolutely')

1 个答案:

答案 0 :(得分:1)

您正在寻找的是:

SELECT word FROM [dbo].[SentimentModel1] WHERE word LIKE '%absol%'

您应该使用您想要的较小部分。这应该以某种形式概括。 更好的方法是使用soundex:

SELECT word FROM [dbo].[SentimentModel1] WHERE SOUNDEX(word) = SOUNDEX('absol')

OR

SELECT word FROM [dbo].[SentimentModel1] WHERE SOUNDEX(word) = SOUNDEX('absolutely')

另一种方法是将单词拆分为字符:T-SQL Split Word into characters 之后,您只需要搜索字符组合。

指数位置0,

索引位置0 + 1,

0 + 1 + 2,

等...

为了获得更好的性能,您可以将所有搜索添加到临时表中并对其进行索引。全文搜索也可能有用......