比较两个表之间的字符串数据

时间:2012-09-26 08:43:05

标签: sql sql-server-2008

我有两个表TABLE 1,列

ID Text           email ID
============================
1  This is Test   123@g.com    
2  Make my day    1234@g.com

表2有一栏

words(column)
=============    
Test    
trip    
day

现在想要做的就是将Table 1中的文本(每个单词)与TABLE 2中的每个行词进行比较,如果找到,则应将id记录在不同的表中。

示例:如果来自TABLE1 Test的是TABLE 2字词列中的行值。所以它应该在另一个表中记录ID =1

一旦发现这个词,它就不应该进行进一步的迭代。

3 个答案:

答案 0 :(得分:3)

试试这个:

select *
from TABLE1 
join 
TABLE2
on ' '+Text+' ' like '% '+words+' %'


SQL fiddle demo

答案 1 :(得分:3)

这有效

SELECT t1.*,t2.words
FROM Table1 t1
JOIN Table2 t2
ON PATINDEX('%' + t2.words + '%',t1.text)>0

<强>输出

ID  Text            email_ID    words
1   This is Test    123@g.com   Test
2   Make my day     1234@g.com  day

答案 2 :(得分:1)

您可以使用CHARINDEX功能:

select *
from TABLE1 t1
where exists 
(
   select 1
   from TABLE2 t2
   where CHARINDEX(t2.words,t1.text)>0
)

Link到文档。