《oracle数据库中的soundex函数》由会员分享,可在线阅读,更多相关《oracle数据库中的soundex函数(2页珍藏版)》请在金锄头文库上搜索。
1、Oracle数据库中的SOUNDEX函数在数据库中,SOUNDEX函数返回字符串参数的语音表示形式,相对于比较一些读音相同,但是拼写不同的单词是非常有用的。ORACLE 中的SOUNDEX返回由四个字符组成的代码 (SOUNDEX) 以评估两个字符串的相似性。 语法SOUNDEX ( character_expression ) 参数character_expression 是字符数据的字母数字表达式。character_expression 可以是常数、变量或列。 返回类型char 注释SOUNDEX 将 alpha 字符串转换成由四个字符组成的代码,以查找相似的词或名称。代码的第一个字符是
2、 character_expression 的第一个字符,代码的第二个字符到第四个字符是数字。将忽略 character_expression 中的元音,除非它们是字符串的第一个字母。可以嵌套字符串函数。 示例下例显示 SOUNDEX 函数及相关的 DIFFERENCE 函数。在第一个示例中,返回所有辅音字母的标准 SOUNDEX 值。为 Smith 和 Smythe 返回的 SOUNDEX 结果相同,因为不包括所有元音、字母 y、连写字母和字母 h。SOUNDEX函数的语法: SOUNDEX(string) 示例:create table t_compareName(personName v
3、archar2(50) )insert into t_compareName values(house);insert into t_compareName values(horse);insert into t_compareName values(two);insert into t_compareName values(too);insert into t_compareName values(to);select personName from t_compareName where soundex(personName)=soundex(two);执行结果:计算语音的算法: 1.将下
4、表中的数字赋给相对应的字母 (1) 1:b、f、p、v (2) 2:c、g、k、q、s、x、z (3) 3:d、t (4) 4:l (5) 5:m、n (6) 6:r 2. 如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个3.只返回前4个字节,不够用0填充 示例: soundex(two),soundex(too),soundex(to),他们的结果都是T000 soundex(cap),soundex(cup),他们的结果都是C100soundex(house),soundex(horse),他们的结果都分别是H200,H620