在 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)) + '%'
我有一个 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)) + '%'