MS SQL:在没有全文或动态SQL的列中查找多个匹配的单词?

MS SQL:在没有全文或动态SQL的列中查找多个匹配的单词?,sql,sql-server,Sql,Sql Server,给定一组以空格分隔的搜索词,如“winchester hotel”,如何在不使用全文或动态SQL的情况下搜索列以查看是否包含所有单词 令人烦恼的是,在这个例子中,我不能使用全文索引,因为我只能搜索视图,而视图本身不能被索引,因为它自己没有可能的唯一索引 我以前确实做到了这一点,我似乎还记得它涉及到将搜索词插入到表变量中。您应该拥有/创建一个函数,将行拆分为一个“表”值的结果,例如一个临时表。其中有很多,所以应该很容易找到 然后,您可以使用like、in或similor将结果表连接到包含日期的基表

给定一组以空格分隔的搜索词,如“winchester hotel”,如何在不使用全文或动态SQL的情况下搜索列以查看是否包含所有单词

令人烦恼的是,在这个例子中,我不能使用全文索引,因为我只能搜索视图,而视图本身不能被索引,因为它自己没有可能的唯一索引


我以前确实做到了这一点,我似乎还记得它涉及到将搜索词插入到表变量中。

您应该拥有/创建一个函数,将行拆分为一个“表”值的结果,例如一个临时表。其中有很多,所以应该很容易找到

然后,您可以使用like、in或similor将结果表连接到包含日期的基表中

然后,您可以根据基表中的结果进行分组并计算发生次数,如果结果的计数与字段数相同,则您知道它包含所有单词

不过,这并不是一种高性能的方法,因此,如果性能影响太大,最好在应用程序代码层中执行部分操作。

这可能会对您有所帮助