在两个表之间找到相似的名称

时间:2015-06-30 01:01:17

标签: sql ms-access

我有两个来自两个不同软件系统的大型客户列表,这两个软件系统大致拥有相同的客户,但通常拼写略有不同。示例包括丹而不是丹尼尔或有或没有公司,姓氏首先而不是名字等。我只使用一个简单的选择查询得到大约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];

1 个答案:

答案 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%);