在SQL Server字符串中搜索另一个表中的值

时间:2016-11-01 21:18:40

标签: sql-server substring udf patindex

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

表A

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

我在同一个DB中有另一个表,其名称为:

表B

 Name
 ------
 David
 Jon

对于30k行,这就是这样的,或者我只是快速硬编码。我想搜索表A' Name'中的每个字符串。表B中每个值的列,如果找到,则返回新列中的名称。

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

2 个答案:

答案 0 :(得分:3)

您只需要LIKE运算符:

select * 
from TableA
inner join TableB on TableA.Name like '%' + TableB.Name + '%'

答案 1 :(得分:1)

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