Sql server SQL Server-部分字符串匹配-两列不同的表

Sql server SQL Server-部分字符串匹配-两列不同的表,sql-server,partial,string-matching,Sql Server,Partial,String Matching,我需要一个SQL Server的查询(或者说存储过程),其中我需要比较两个不同表的数据,其结构如下 表1 ID Text Table2ID 1 Chris 2 John 3 Paul 表2 ID Text 1 Mitchell Johnson 2 Chris Martin 3 Steven 通过比较以上两个表,我需要从表2中获取“id”,并将它们插入到第一个表的“Ta

我需要一个SQL Server的查询(或者说存储过程),其中我需要比较两个不同表的数据,其结构如下

表1

ID       Text       Table2ID
1        Chris   
2        John
3        Paul
表2

ID       Text
1        Mitchell Johnson
2        Chris Martin
3        Steven
通过比较以上两个表,我需要从表2中获取“id”,并将它们插入到第一个表的“Table2ID”列中

比较标准:-

“表1”的“文本”列中的全文应包含在“表2”的“文本”列中

在我们的例子中,我们将从表2中获得前两行的“ID”(因为单词John包含在“Mitchell Johnson”中,单词Chris包含在“Chris Martin”中,而Paul不包含在“table2”中)

我怎样才能做到这一点?如果有人能告诉我这条路该有多好

问候,,
Raghuraman.V

抽象的答案是:

UPDATE Table
SET Table.col1 = other_table.col1
FROM Table
INNER JOIN other_table ON Table.id = other_table.id
具体而言:

update Table1
set Table1.Table2ID = Table2.ID
from Table1
inner join Table2 on Table2.Text like '%' + Table1.Text + '%'

你会如何处理双重匹配,即,如果你有“克里斯·约翰逊”,你会如何处理它?@RedFilter-在类似的过程中,非常相似的东西咬了我的屁股:)你所说的
抽象答案
是什么意思?抽象含义不特定于你的情况,一个广义的答案。这是您下次需要从类型的查询执行更新时可以使用的模式。出于好奇(如果表2也包含记录
4 | John Smith
)你猜那
table1.table2Id
等于1或4吗?我在table1中有一行带“#沃尔特·迪斯尼”,同样在table2中有一行带“#迪斯尼世界”。您的查询未将其视为匹配项。我希望你收到我的信point@Raghu当前位置你刚刚彻底改变了问题的范围。