识别相似的名字,例如:"AAA BBB CCC" 和 "BBB AAA CCC" 是同一个人
Identify similar names eg: "AAA BBB CCC" and "BBB AAA CCC" are the same people
我目前正在处理一个问题。我有一列名称。下面是场景
Anna Smith
Anna.Smith
Anna_Smith
Smith Anna
在上述情况下,我能够找出 Anna Smith,Anna.smith 和 Anna_Smith 是同一个人。但我找不到任何逻辑可以帮助我说 Smith Anna 与 Anna Smith 相同。
目前正在使用 MS-SQl
下面是逻辑
select name, isnull(lower(dbo.RemoveSpecialChars(substring(name, 0, charindex('@',name)))),dbo.RemoveSpecialChars(name)) nospacename
into #sheet32
from [dbo].['Sheet3 (2)$']
我正在删除所有像
这样的字符
".", ";"," "
出现在名字中并将它们连接成一个名字
因此 Anna Smith、Anna.Smith、Anna_Smith 都将转换为 AnnaSmith。 RemoveSpecialChars - 是用户定义的函数
有什么方法可以让我知道 Anna Smith 和 Smith Anna 是同名吗?目前正在研究 MS-SQl。 Excel、C# 和 VBA 中给出的解决方案也很好。
谢谢,
幸
正如 Ron 提到的,拆分单词可能是一种简单的方法。 (这是在 c# 中)
//String you want to check
string names = "Smith Anna";
//Split
char[] splitters = { '-', '_', '.',' '};
List<string> result = names.Split(splitters).ToList();
//Sort the list
result.Sort();
然后只进行比较。
我目前正在处理一个问题。我有一列名称。下面是场景
Anna Smith
Anna.Smith
Anna_Smith
Smith Anna
在上述情况下,我能够找出 Anna Smith,Anna.smith 和 Anna_Smith 是同一个人。但我找不到任何逻辑可以帮助我说 Smith Anna 与 Anna Smith 相同。
目前正在使用 MS-SQl 下面是逻辑
select name, isnull(lower(dbo.RemoveSpecialChars(substring(name, 0, charindex('@',name)))),dbo.RemoveSpecialChars(name)) nospacename
into #sheet32
from [dbo].['Sheet3 (2)$']
我正在删除所有像
这样的字符".", ";"," "
出现在名字中并将它们连接成一个名字 因此 Anna Smith、Anna.Smith、Anna_Smith 都将转换为 AnnaSmith。 RemoveSpecialChars - 是用户定义的函数
有什么方法可以让我知道 Anna Smith 和 Smith Anna 是同名吗?目前正在研究 MS-SQl。 Excel、C# 和 VBA 中给出的解决方案也很好。
谢谢, 幸
正如 Ron 提到的,拆分单词可能是一种简单的方法。 (这是在 c# 中)
//String you want to check
string names = "Smith Anna";
//Split
char[] splitters = { '-', '_', '.',' '};
List<string> result = names.Split(splitters).ToList();
//Sort the list
result.Sort();
然后只进行比较。