SOUNDEX( ) 函数

返回指定字符串的 soundex 码,该码可用来与其他字符串进行语音比较。

语法

SOUNDEX(名称

参数

名称 类型 描述
名称 字符 要评估的字符表达式。

输出

字符。返回由四个字符构成的 soundex 码。

示例

基本示例

发音相同但拼写不同的单词

下面的两个示例返回相同的 soundex 代码,因为它们虽然拼写不同,但发音相同。

返回 F634:

SOUNDEX("Fairdale")

返回 F634:

SOUNDEX("Faredale")

发音相似的单词

下面的两个示例返回彼此不同但相近的 soundex 代码,因为两个单词的发音类似。

返回 J525:

SOUNDEX("Jonson")

返回 J523:

SOUNDEX("Jonston")

发音不同的单词

下面的两个示例返回非常不同的 soundex 代码,因为两个单词的发音一点儿也不类似。

返回 S530:

SOUNDEX("Smith")

返回 M235:

SOUNDEX("MacDonald")

域输入

返回姓氏 域中各个值的 soundex 码。

SOUNDEX(姓氏)

高级示例

识别匹配的 soundex 代码

创建计算域 Soundex_Code,以显示姓氏域中每个值的 soundex 代码:

DEFINE FIELD Soundex_Code COMPUTED SOUNDEX(姓氏)

将计算域 Soundex_Code 添加到视图中,然后对该计算域执行重复值测试以识别任何匹配的 soundex 码:

DUPLICATES ON Soundex_Code OTHER 姓氏 PRESORT OPEN TO "Possible_Dupes.fil"

匹配的 soundex 码表明姓氏域中的关联字符值可能是重复值。

备注

何时使用 SOUNDEX( )

使用 SOUNDEX( ) 函数可查找发音相似的值。语音相似性是找到可能的重复值或手动输入数据不一致拼写的方式之一。

工作原理

SOUNDEX( ) 返回所评估字符串的美国 Soundex 码。所有代码均为一个字母后跟三个数字。例如,“F634”。

soundex 码是如何得到的

  • 该代码中的第一个字符代表所评估字符串的第一个字母。
  • 该代码中的每个数字都代表六个美国 Soundex 组之一。这些组由发音相似的辅音字母组成。

    根据这些分组,soundex 流程对所评估字符串中第一个字母后的前三个辅音字母进行编码。

soundex 流程忽略的内容

soundex 流程忽略:

  • 首字母大写
  • 元音字母
  • 辅音字母 "H"、"W" 和 "Y"
  • 任何出现在三个编码辅音字母之后的辅音字母

返回码末尾的一个或多个零 (0) 表示已评估字符串的第一个字母后的辅音少于三个。

soundex 流程的限制

SOUNDEX( ) 和 SOUNDSLIKE( ) 函数都具有某些限制:

  • soundex 算法旨在作用于用英语发音的单词,在用于其他语言时具有不同程度的效力。
  • 尽管 soundex 过程执行语音匹配,但匹配的单词必须全部以相同字母开头,而这意味着某些发音相同的单词不匹配。

    例如,以 "F" 开头的单词和以 "Ph" 开头的单词可能发音相同,但它们永远不会匹配。

相关函数

  • SOUNDSLIKE( ) 通过发音比较字符串的替代方法。
  • ISFUZZYDUP( ) 和 LEVDIST 基于正字法比较(拼写)而不是语音比较(声音)来比较字符串。
  • DICECOEFFICIENT( ) 函数在比较字符串时不太强调或完全忽略字符或字符块的相对位置。
ACL 脚本指南 14.1