全文包含来自另一个表的列
Posted
技术标签:
【中文标题】全文包含来自另一个表的列【英文标题】:Full text contains with a column from another table 【发布时间】:2019-11-21 00:48:07 【问题描述】:我需要搜索大于 4000 个字符的文本。
这是我尝试做的选择,而不是在包含中放置一个很长的字符串:
;WITH cte AS
(
SELECT code
FROM table_a
)
SELECT *
FROM cte
CROSS APPLY
(SELECT *
FROM table_b
WHERE CONTAINS(table_b.field, cte.code)) c
但这种方法不起作用。
任何帮助将不胜感激。
谢谢
【问题讨论】:
“但是这个解决方案行不通。” 为什么不行呢?没试过怎么知道? 因为当我从另一个表中放置一个字段时,包含对我不起作用。它只适用于字符串或变量。 【参考方案1】:游标可以解决问题,但您应该注意对性能的影响,具体取决于您的数据。
更详细:通过 table_a 进行游标循环。对于每个循环,为代码设置一个变量。使用该代码作为 CONTAINS 函数的参数。如果匹配,则将 code 和 table_b.id 的值插入到临时表中。在所有循环之后,您的临时表中就有了结果。
【讨论】:
以上是关于全文包含来自另一个表的列的主要内容,如果未能解决你的问题,请参考以下文章
从表中选择最新的带时间戳的值,该表对于一个列 id 有多个条目,对于每个唯一的列 id 和来自另一个表的数据