Ms access 删除MS Access中不存在的重复记录';不完全匹配
我正在使用导入MS Access的Excel电子表格。它们包括客户姓名、出生日期、其他一些个人信息和订单信息。同一客户机通常有多个唯一的订单。我正在创建一个仅为唯一客户机的表(稍后我将链接到订单表),因此当我从Excel导入数据时,我希望删除重复的客户机记录,并保留一条。我想把他们的名字和出生日期匹配起来。我遇到的问题是,一些客户端名称是不完全匹配的字符串 例如:Ms access 删除MS Access中不存在的重复记录';不完全匹配,ms-access,Ms Access,我正在使用导入MS Access的Excel电子表格。它们包括客户姓名、出生日期、其他一些个人信息和订单信息。同一客户机通常有多个唯一的订单。我正在创建一个仅为唯一客户机的表(稍后我将链接到订单表),因此当我从Excel导入数据时,我希望删除重复的客户机记录,并保留一条。我想把他们的名字和出生日期匹配起来。我遇到的问题是,一些客户端名称是不完全匹配的字符串 例如: Name DOB ---- --- DOE,JOHN 1/1/1960 D
Name DOB
---- ---
DOE,JOHN 1/1/1960
DOE,JOHN L 1/1/1960
JOHNSON,PAT 12/1/1945
SMITH,BETTY 2/1/1935
在上面的集合中,我想将其限制为仅三条记录,并删除多余的John Doe记录
我基本上只想看一下空格前的客户机名称。
我不反对完全丢掉中间的首字母,所以如果有办法把它切掉,那也行。我怎样才能做到这一点呢?听起来你最简单的选择就是实际上切断任何中间初始值 您将希望按如下方式进行处理
SELECT DISTINCT
Table1.Name,
Table1.DOB,
InStr(1,[Table1].[Name]," ",1) AS Expr1,
IIf([expr1]>0,Left([Table1].[Name],[Expr1]-1),[Table1].[Name]) AS Expr2
FROM Table1;
Wayne抢先告诉我了。在查询中,您可以使用以下内容来获取名称。我假设在第一个“Doe,John”中根本没有空间。我的名字:IIf(InStr(1,[Name1],”“)=0,[Name1],左([Name1],InStr(1,[Name1],”“)-1))谢谢!成功了!发帖后,我意识到我不想完全删掉中间的首字母(因为其中一些字母也是“Jr”或“Sr”),但我可以将删掉的字母和DOB进行比较,效果会很好。