使用SQL按字母顺序重新排列字符串中的字符
我希望采取一个字符串字段,并重新排列成字母顺序的字符。例如,如果它是一个名称字段,并且名称是MICHAEL SMITH,那么它将更改为AcehhiilmSt 主要目的是在类似名称的字段中查找重复项,在该字段中可能有人输入了一个打字错误,并输入了MICHEAL SMITH或MICHAEL SMTIH的名称。我想到的另一个选择是为每个字母(1-26)指定一个数字值,然后如果这些值的总和和名称字段的长度相同,则会将其视为重复。问题是我不知道如何对字符串字段中的数字求和 此外,我正在使用Oracle SQL,因此函数将基于可用的函数 有什么想法或至少是开始的地方吗 编辑 我不是想问如何做到这一点的代码,我是想问更多的是否可行,如果可能,我的起点是什么(函数类型、技术等)检查。它可以用来衡量两个字符串的相似性使用SQL按字母顺序重新排列字符串中的字符,sql,oracle,plsql,toad,Sql,Oracle,Plsql,Toad,我希望采取一个字符串字段,并重新排列成字母顺序的字符。例如,如果它是一个名称字段,并且名称是MICHAEL SMITH,那么它将更改为AcehhiilmSt 主要目的是在类似名称的字段中查找重复项,在该字段中可能有人输入了一个打字错误,并输入了MICHEAL SMITH或MICHAEL SMTIH的名称。我想到的另一个选择是为每个字母(1-26)指定一个数字值,然后如果这些值的总和和名称字段的长度相同,则会将其视为重复。问题是我不知道如何对字符串字段中的数字求和 此外,我正在使用Oracle S
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
检查。它可以用来衡量两个字符串的相似性
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
询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案,以及为什么它们不工作。你会考虑使用存储的函数来重排吗?我不是要求代码,我要求一个起点。我对SQL的了解仅限于运行更基本的查询,因此我并不总是确定它能做什么和不能做什么。我想到了SOUNDEX函数,但Joe中提到的utl_匹配可能更好。询问代码的问题必须表明对所解决问题的最低理解。包括尝试的解决方案,以及为什么它们不工作。你会考虑使用存储的函数来重排吗?我不是要求代码,我要求一个起点。我对SQL的了解仅限于运行更基本的查询,因此我并不总是确定它能做什么和不能做什么。我想到了SOUNDEX函数,但Joe's中提到的utl_匹配可能会更好。谢谢Joe,这似乎是一种我不知道的更简单的方法。谢谢Joe,这似乎是一种我不知道的简单得多的方法。