如何从查找中获取一行 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 并且成功了。
我有一个客户 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 并且成功了。