如何使用Like运算符将一个表中的字符串与子字符串匹配到另一个表中

Kar*_*k S 1 sql sql-server

我有两个表Table 1&Table 2.Table 1有客户详细信息并Table 2有交易详情:

    Table 1                      Table 2        

Col1    CustCode        Col1    TrainsactionID      Col3
11      AAA             101     2139812/BBB/98waw   EDF
22      BBB             102     2398472/CCC/18sdf   QWD
33      CCC             103     9283743/AAA/76afa   VFB
44      DDD             104     2983472/BBB/123as   FGV
Run Code Online (Sandbox Code Playgroud)

我需要选择客户代码(字符串)AAA,BBBCCC从列"CustCode"中选择table 1它们作为列"TransactionID"中的子字符串table 2.有没有办法可以使用'Like %'运算符编写相关子查询来获取所有这样的匹配CustCodes

Tim*_*sen 5

您可以使用连接,条件是第一个表中的客户代码出现在第二个表的事务ID路径中.

SELECT t1.Col1, t1.CustCode, t2.Col1, t2.TrainsactionID, t2.Col3
FROM Table1 t1
INNER JOIN Table2 t2
    ON t2.TrainsactionID LIKE '%/' + t1.CustCode + '/%';
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

演示

请注意,此连接条件不是最佳的,可能无法使用索引.如果您对这些表有长期需求,那么请考虑设置可以使用相等运算符的连接列.