如何从查找中获取一行 table 列包含任何

How to get a row from a look up table column contains any

我有一个客户 table,其中包含以下行:

我有一个名为 Master 的查找 table,如下所示:

正如您在 Master 查询中看到的,我显示的是名字和中间名。什么是最好的 SQL 查询给我以下结果:

所以基本上我想在主列表的名字列中查找客户的名字,但可以任意组合。到目前为止,我已经尝试了以下但没有给我所有我需要的东西

选项 1 - 这不是给我不同的参考编号

select distinct *.C, msurname.Ref
from Customer c 
inner join Master mfirstname on (c.firstname like '%' + mfirstname.firstname +'%')
inner join Master msurname on (c.surname like '%' + msurname.surname +'%')

选项 2 - 此选项不提供参考编号

select c.*
from Customer c
where c.surname in ( select m.surname from master m 
                     where m.surname like '%' + c.surname + '%'
                     and  m.firstname like '%' + c.firstname + '%')

选项 3 - 可能是一个选项,但 return 重复行,因此需要进一步检查

  select c.*,m.ref
  from Customer c 
  inner join Master m on ((c.firstname like '%' + m.firstname + '%') and  (c.surname like '%' + m.surname + '%')) 

我做错了什么?

INSTR可以派上用场

SELECT Customer.firstname, Customer.lastname, Customer.id, Master.ref
  FROM Customer INNER JOIN Master
ON INSTR(Master.firstname, Customer.firstname) > 0;

感谢@subodhkalika 的帮助。我在你的公式中使用了 CHARINDEX 并且成功了。