DIFFERENCE 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DIFFERENCE 函數

DIFFERENCE 函數比較兩個字串的 American Soundex 代碼。該函數傳回 INTEGER,以指示 Soundex 代碼之間的比對字元的數量。

一個 Soundex 代碼是一個四個字元長的字串。Soundex 代碼代表單詞的發音方式,而不是拼寫方式。例如,SmithSmyth 具有相同的 Soundex 代碼。

語法

DIFFERENCE(string1, string2)

引數

string1

CHAR 字串、VARCHAR 字串或隱含評估為 CHARVARCHAR 類型的運算式。

string2

CHAR 字串、VARCHAR 字串或隱含評估為 CHARVARCHAR 類型的運算式。

傳回類型

INTEGER

DIFFERENCE 函數傳回 0-4 之間的 INTEGER 值,用於計算兩個字串的 American Soundex 代碼中比對字元的數量。Soundex 代碼有 4 個字元,因此當字串的 American Soundex 代碼值的所有 4 個字元都相同時,DIFFERENCE 函數會傳回 4。如果兩個字串中的一個為空,則 DIFFERENCE 傳回 0。如果字串都不包含有效字元,該函數傳回 1。DIFFERENCE 函數只會轉換英文字母小寫或大寫 ASCII 字元,包括 a-z 和 A-Z。DIFFERENCE 會忽略其他字元。

範例

若要比較字串 %@ 的 Soundex 值,請使用下列範例。該函數傳回 1,因為字串都不包含有效的字元。

SELECT DIFFERENCE('%', '@'); +------------+ | difference | +------------+ | 1 | +------------+

若要比較 Amazon 的 Soundex 值和一個空字串,請使用下列範例。該函數傳回 0,因為兩個字串中的一個是空的。

SELECT DIFFERENCE('Amazon', ''); +------------+ | difference | +------------+ | 0 | +------------+

若要比較字串 AmazonAma 的 Soundex 值,請使用下列範例。該函數傳回 2,因為字串的 Soundex 值的 2 個字元是相同的。

SELECT DIFFERENCE('Amazon', 'Ama'); +------------+ | difference | +------------+ | 2 | +------------+

若要比較字串 Amazon+-*/%Amazon 的 Soundex 值,請使用下列範例。該函數傳回 4,因為字串的 Soundex 值的所有 4 個字元都是相同的。請注意,函數會忽略第二個字串中的無效字元 +-*/%

SELECT DIFFERENCE('Amazon', '+-*/%Amazon'); +------------+ | difference | +------------+ | 4 | +------------+

若要比較字串 AC/DCAy See Dee See 的 Soundex 值,請使用下列範例。函數傳回 4,因為字串的 Soundex 值的所有 4 個字元都相同。

SELECT DIFFERENCE('AC/DC', 'Ay See Dee See'); +------------+ | difference | +------------+ | 4 | +------------+