我有两个来自两个不同软件系统的大型客户列表,这两个软件系统大致拥有相同的客户,但通常拼写略有不同。示例包括丹而不是丹尼尔或有或没有公司,姓氏首先而不是名字等。我只使用一个简单的选择查询得到大约30%的确切名称匹配,我在一个例子中粘贴了。我怎么能修改这个以使它更像是这两个表之间的通配符选择查询,以获得更多类似于轻微名称更改的匹配?
SELECT [Customer System 1].[Customer Name]
FROM Customer System 2 INNER JOIN [Customer System 1]
ON Customer System 2.[Cust Name] = [Customer System 1].[Customer Name];
答案 0 :(得分:1)
您可以尝试like
:
select [Customer System 1].[Customer Name]
from ([Customer System 2]
join [Customer System 1] on ( [Customer System 2].[Cust Name] like '%' & [Customer System 1].[Customer Name] & '%'
or [Customer System 1].[Customer Name] like '%' & Customer System 2.[Cust Name] & '%' ));
有两种情况,因为可能有两种情况应该匹配行:
[Customer System 2].[Cust Name]
包含模式[Customer System 1].[Customer Name]
(Daniel
匹配%Dan%
模式,但Dan
与%Daniel%
不匹配; [Customer System 1].[Customer Name]
包含模式[Customer System 2].[Cust Name]
(Dan
与%Daniel%
不匹配,但Daniel
匹配%Dan%
);