首页 > 解决方案 > 全文包含来自另一个表的列

问题描述

我需要搜索大于 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

但这种方法不起作用。

任何帮助将不胜感激。

谢谢

标签: sql-servercontainscross-apply

解决方案


游标可以解决问题,但您应该了解对性能的影响,具体取决于您的数据。

更多详细信息:通过 table_a 进行游标循环。对于每个循环,为代码设置一个变量。使用该代码作为 CONTAINS 函数的参数。如果匹配,则将 code 和 table_b.id 的值插入到临时表中。在所有循环之后,您将在临时表中获得结果。


推荐阅读