2017-11-06 20 views
1

が含まれています:SQL Serverは - SQL Serverの2014年と、次のデータを使用してクエリ

ID   Address   City   State 
1   55 Main St  Dallas   TX 
2   4 Elm Blvd  Cupertino  CA 
3   66 Walnut  Miami   FL 
4   21 Main Ave  Cupertino  CA 

私が使用しようとしているマッチを見つけるために、複数のカラムにクエリが含まれていますが、適切な構文を把握することはできません。この場合、私は、クエリの一部を持っている:

CONTAINS ((Address, City, State), '"main" or "cupertino") 

これは、行#1、#2、#4 &を返します。

また、私は、この試すことができます。これは、任意の行を返さない

CONTAINS ((Address, City, State), '"main" and "cupertino") 

を。

私が理解しようとしているのは、「main」と「cupertino」の検索クエリを使用して行4を返す方法です。

だから、基本的に、私は、次の操作を実行しようとしているが、クエリが含まれているとしています:

WHERE (Address LIKE '%main%' OR City LIKE '%main%' OR Zip LIKE '%main%') AND (Address LIKE '%cupertino%' OR City LIKE '%cupertino%' OR Zip LIKE '%cupertino%') 

ありがとう!

答えて

0

CONTAINS()の式は、それぞれの列ごとに(あなたが推測したように)計算されます。一つの解決策を試してみることです。

alter table t add acs as (Address + ' ' + City + ' ' + State) persisted; 

そして、その列にインデックスを構築:

CONTAINS((Address, City, State), '"main"') AND 
CONTAINS((Address, City, State), '"cupertino"') 

より従来の方法では、計算列を追加し、インデックスのためにそれを使用することです。

+0

計算された列の呼び出しが良いとは思わなかった。 –

関連する問題