2

OriginalWord という名前の列を持つテーブル A と、列名 mySentence を持つテーブル B があります。

OriginalWord には次のような行があります。

  • データ
  • チェック中

任意の単語を格納します。

mySentence は、次のような文を含む行を格納します。これはスターです。

OriginalWord のいずれかの単語が mySentence に存在する場合、mySentence のすべての行を一覧表示したいと考えています。

したがって、上記の例の mySentence はリストされますが、mySentence の行が「これは私のお父さんです」の場合はリストされません。

これを T-SQL でどのように記述すればよいでしょうか。

4

2 に答える 2

1

述語がインデックスの使用を取り除くため、LIKE %%これを使用して目的を達成できます。

SELECT DISTINCT
  T1.mySentence
FROM Table1 T1 
    INNER JOIN Table2 T2 
       ON ' '+ T1.mySentence + ' ' LIKE '% ' + T2.OriginalWord + ' %'

アップデート

SQL フィドルのデモ

于 2013-02-02T08:27:21.833 に答える
0

単純なシナリオの場合、yoは次のLIKEような述語を使用できます。

SELECT 
  s.mySentence
FROM Sentences s 
INNER JOIN Words w ON s.mySentence LIKE '%' + w.OriginalWord + '%';

SQLフィドルデモ

于 2013-02-02T08:21:49.693 に答える