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圖書館,