全文包含另一个表中的列

时间:2019-07-11 10:11:52

标签: sql-server contains cross-apply

我需要搜索大于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 个答案:

答案 0 :(得分:0)

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

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