包含使用列而不是文本值或变量的全文索引
Posted
技术标签:
【中文标题】包含使用列而不是文本值或变量的全文索引【英文标题】:fulltext index where contains uses column not text value or variable 【发布时间】:2013-01-29 12:12:42 【问题描述】:我正在尝试运行一个查询,其中我在一个列上有一个全文索引,我想运行一个包含语句的查询,其中该列正在寻找与另一个表中的列匹配...而不是静态文本值或变量....这可能吗?
select a.field1, a.field2, c.x, c.y, c.z
from dbo.TableA a
cross apply(select x,y,z
from dbo.TableB b
where contains(b.x, a.field1)
c
谢谢!!!!
【问题讨论】:
您是否遇到任何错误?我不明白为什么它不应该工作。 【参考方案1】:这种方式是不可能的,但你可以使用它。在这种情况下,我使用 SELECT 语句创建 (|) 分隔列表。可以使用条形符号 (|) 代替 OR 关键字来表示 OR 运算符。
DECLARE @Searchwords nvarchar(4000) = N''
SELECT @Searchwords += '|' + a.field1
FROM dbo.TableA a
SELECT @Searchwords = STUFF(@Searchwords, 1, 1, '')
SELECT b.x, b.y, b.z
FROM dbo.TableB b
WHERE CONTAINS(b.x, @Searchwords)
【讨论】:
以上是关于包含使用列而不是文本值或变量的全文索引的主要内容,如果未能解决你的问题,请参考以下文章