检查字符串存在于另一个字段中

时间:2013-02-02 08:15:23

标签: sql sql-server tsql

我有一个表A,其中一列名为OriginalWord,另一个表B的列名为mySentence。

OriginalWord有如下行:

  • 数据
  • 检查

存储任何单个单词。

mySentence存储带句子的行,例如:这是一个明星。

如果mySentence中存在OriginalWord中的任何单词,我想列出mySentence中的所有行。

所以上面例子中的mySentence会被列出,但如果mySentence的行是“这是我的父亲”,则不会列出。

如何在T-SQL中编写?

2 个答案:

答案 0 :(得分:1)

由于LIKE %%谓词摆脱了索引的使用,你可以用它来实现你想要的。

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

<强>更新

SQL FIDDLE DEMO

答案 1 :(得分:0)

对于简单方案,您可以使用LIKE谓词,如下所示:

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

SQL Fiddle Demo