SOUNDSLIKE( ) 函数
返回逻辑值,表明某字符串是否与和它相比较的字符串在语言方面相匹配。
语法
SOUNDSLIKE(名称,读音相似的名称)
参数
名称 | 类型 | 描述 |
---|---|---|
名称 | 字符 | 比较中的第一个字符串。 |
读音相似的名称 | 字符 | 比较中的第二个字符串。 |
输出
逻辑。如果所比较的值在发音上匹配,则返回 T (真);反之则返回 F(假)。
示例
基本示例
返回 T,因为 "Fairdale" 和 "Faredale" 的 soundex 码都是 F634:
SOUNDSLIKE("Fairdale","Faredale")
返回 F,因为 "Jonson" 的 soundex 码是 J525,而 "Jonston" 的 soundex 码是 J523:
SOUNDSLIKE("Jonson","Jonston")
返回一个逻辑值(T 或 F),指示姓氏域中各值的 soundex 码是否与字符串 "Smith" 的 soundex 码相匹配。
SOUNDSLIKE(姓氏,"Smith")
高级示例
隔离发音像 "Smith" 的值
创建一个过滤器以隔离姓氏域中所有发音像“Smith”的值:
SET FILTER TO SOUNDSLIKE(姓氏,"Smith")
备注
何时使用 SOUNDSLIKE( )
使用 SOUNDSLIKE( ) 函数可查找发音相似的值。语音相似性是找到可能的重复值或手动输入数据不一致拼写的方式之一。
工作原理
SOUNDSLIKE( ) 将比较字符串转换为四位字符的美国 Soundex 码,该代码基于每个字符串中的第一个字母以及第一个字母后面的前三个辅音字母。
该函数随后比较每个字符串的代码,并且返回一个逻辑值以指示它们是否匹配。
有关 soundex 码的更多信息,请参见SOUNDEX( ) 函数。
区分大小写
该函数不区分大小写,因此“SMITH”等效于“smith”。
soundex 流程的限制
SOUNDSLIKE( ) 和 SOUNDEX( ) 函数具有某些限制:
- soundex 算法旨在作用于用英语发音的单词,在用于其他语言时具有不同程度的效力。
- 尽管 soundex 过程执行语音匹配,但匹配的单词必须全部以相同字母开头,而这意味着某些发音相同的单词不匹配。
例如,以 "F" 开头的单词和以 "Ph" 开头的单词可能发音相同,但它们永远不会匹配。
相关函数
- SOUNDEX( ) 通过发音比较字符串的替代方法。
- ISFUZZYDUP( ) 和 LEVDIST 基于正字法比较(拼写)而不是语音比较(声音)来比较字符串。
- DICECOEFFICIENT( ) 函数在比较字符串时不太强调或完全忽略字符或字符块的相对位置。