我希望获取一个字符串字段并将字符重新排列为字母顺序。例如,如果它是名称字段且名称为MICHAEL SMITH,则它将更改为ACEHHIILMMST。
主要目的是在名称等字段中查找重复项,其中某人可能会输入错字并将其命名为MICHEAL SMITH或MICHAEL SMTIH。我想到的另一个选择是为每个字母分配一个数字值(1-26),然后如果这些值的总和和名称字段的长度相同,则认为它是重复的。问题是我不知道如何在字符串字段中总结数字。
此外,我正在使用Oracle SQL,因此功能将基于可用的功能。
任何想法或至少可以开始的地方?
修改 的
我不是要求代码如何执行此操作,我要求更多是否有可能,如果可能的话,我的起点是什么(函数类型,技术等)
答案 0 :(得分:4)
检查utl_match。它可以用来衡量两个字符串的相似性。
select utl_match.edit_distance_similarity('MICHAEL SMITH','MICHEAL SMITH') from dual
85
select utl_match.edit_distance_similarity('MICHAEL SMITH','MICHELLE SMITH') from dual
79
select utl_match.edit_distance_similarity('MICHAEL SMITH','FRANKIE JONES') from dual
8