SOUNDEX查看源代码讨论查看历史
Soundex |
外文名: SOUNDEX 性 质: 参数 评 估: 两个字符串发音的相似性 语 法: character_expression |
SOUNDEX返回由四个字符组成的代码 (SOUNDEX) 以评估两个字符串在发音时的相似性。语法 SOUNDEX ( character_expression )
简介
参数character_expression是字符数据的字母数字表达式。character_expression 可以是常数、变量或列。
返回类型char
注释
SOUNDEX 将 alpha 字符串转换成由四个字符组成的代码,以查找相似的词或名称。代码的第一个字符是 character_expression 的第一个字符,代码的第二个字符到第四个字符是数字。将忽略 character_expression 中的元音,除非它们是字符串的第一个字母。可以嵌套字符串函数。
规则
a e h i o u w y -> 0
b f p v -> 1
c g j k q s x z -> 2
d t -> 3
l -> 4
m n -> 5
r -> 6
1、提取字符串的首字母作为soundex的第一个值。
2、按照上面的字母对应规则,将后面的字母逐个替换为数字。如果有连续的相等的数字,只保留一个,其余的都删除掉。并去除所有的0。
3、如果结果超过4位,取前四位;如果结果不足4位向后补0。
示例
按照上述规则,计算字符串 “Ahnddreg" 的soundex过程为:
1、取首字母 a
2、替换后面的字母 a0533602。按照规则去掉所有的0,结果变为 a53362。再去掉重复的数字,结果变为a5362。
3、现在结果总长为5位,我们只取前4位,所以结果为a536
SOUNDEX()函数和DIFFERENCE()函数简介
SOUNDEX 函数功能
返回表示字符串声音的数字。
语法
SOUNDEX ( string-expression )
参数
string-expression 字符串。
用法
字符串的 SOUNDEX 函数值基于第一个字母和随后三个除 H、Y 和 W 之外的辅音。两个重复的字母按一个字母计算。例如,
SOUNDEX( 'apples' )
基于字母 A、P、L 和 S。
SOUNDEX 函数忽略多字节字符。
尽管不很完美,但 SOUNDEX 对于那些听起来相似和以相同字母开头的单词,通常返回相同的数字。
SOUNDEX 函数对英语单词效果最好。对于其它语言,它的用处不大。
标准和兼容性
SQL/92 供应商扩展。
SQL/99 供应商扩展。
Sybase 与 Adaptive Server Enterprise 兼容,但 Adaptive Server Enterprise 返回 CHAR(4) 结果,而 Adaptive Server Anywhere 返回整数。
示例
下面的语句返回两个数字,表示每个名称的声音。每个参数的 SOUNDEX 值都是 3827。
SELECT SOUNDEX( 'Smith' ), SOUNDEX( 'Smythe' )
DIFFERENCE 函数 [字符串]
功能
返回两个字符串表达式之间 SOUNDEX 值的差。
语法
DIFFERENCE ( string-expression-1, string-expression-2 )
参数
string-expression-1 第一个 SOUNDEX 参数。
string-expression-2 第二个 SOUNDEX 参数。
标准和兼容性
SQL/92 供应商扩展。
SQL/99 供应商扩展。
Sybase 与 Adaptive Server Enterprise 兼容。[1]
参考来源
- ↑ SOUNDEX()函数和DIFFERENCE()函数简介,360图书馆,