1

助けが必要です:

Country という名前のテーブルがあり、Town という名前の列と Country という名前の列があります。

次に、いくつかの列を持つ Stores という名前のテーブルがあります (これは非常に不適切に設定されたテーブルです) が、重要なのは Address1 と Address2 という名前の列です。

Address1 と Address2 に Country テーブルの町が含まれている Stores のすべての行を返したいと考えています。

これは簡単な解決策だと思いますが、わかりません。

WHERE CONTAINS を使用できると便利ですが、パラメーターで別のテーブルの列を検索できますか?

例えば

SELECT * 
FROM Stores
WHERE CONTAINS (Address1, 'Select Towns from Countries')

しかし、明らかにそれは不可能です。これに対する簡単な解決策はありますか?

4

2 に答える 2

2

あなたは近くにいます

SELECT * FROM Stores s
WHERE EXISTS (
    SELECT * FROM Countries
    WHERE CONTAINS(s.Address1, Town) OR CONTAINS(s.Address2, Town)
)
于 2013-11-15T06:54:06.840 に答える
1

これは私の最初の試みです:

select * from stores s
where 
  exists 
  (
    select 1 from countries c 
    where s.Address1 + s.Address2 like '%'+c.Town+'%'
  ) 

編集:おっと、「CONTAINS」句が必要であることがわかりました。次に、ポールのソリューションを取ります

于 2013-11-15T06:54:14.247 に答える