2

我有一个表 A 的列名为 OriginalWord 和表 B 的列名为 mySentence。

OriginalWord 的行如下:

  • 星星
  • 数据
  • 检查

它存储任何单个单词。

mySentence 存储带有句子的行,例如:This is a star。

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

因此,上面示例中的 mySentence 将被列出,但如果 mySentence 的行是“This is my dad”,则不会列出。

我如何在 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

对于简单的场景,你可以LIKE像这样使用谓词:

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

SQL 小提琴演示

于 2013-02-02T08:21:49.693 回答