在 SQL 服务器字符串中搜索来自另一个 table 的值

Search SQL Server string for values from another table

我有一个 table 列 name,名称前后有随机字符,即:

Table一个:

  Name
  -----------------
  asd4345JONlkj345
  .;lidDavidlksd$

我在同一个数据库中还有另一个 table,名称为:

Table B:

 Name
 ------
 David
 Jon

对于 30k 行,这种情况会继续下去,否则我会非常快速地对某些内容进行硬编码。我想在 Table A 'Name' 列中的每个字符串中搜索 Table B 中的每个值,如果找到 return 新列中的名称。

我感觉这将是一个 UDF,这很好,我只是不确定在这种情况下如何使用 patindex,或者这是否是正确的方法。

为此您只需要 LIKE 运算符:

select * 
from TableA
inner join TableB on TableA.Name like '%' + TableB.Name + '%'
  select B.Name, A.Name from tableA A inner join join tableB B
  on rtrim(ltrim(B.Name)) like '%' + rtrim(ltrim(A.Name)) + '%'