2

列にフルテキスト インデックスがあるクエリを実行しようとしています。また、その列が別のテーブルの列との一致を探している場合に、静的テキストではなく、contains ステートメントを使用してクエリを実行したいと考えています。値または変数....これは可能ですか?

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 に答える