2

我正在尝试运行一个查询,其中我在一列上有一个全文索引,并且我想运行一个包含语句的查询,其中该列正在寻找与另一个表中的列匹配...而不是静态文本值或变量....这甚至可能吗?

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

谢谢!!!!

4

1 回答 1

0

这种方式是不可能的,但你可以使用它。在这种情况下,我使用 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)
于 2013-02-13T22:51:48.853 回答