View a markdown version of this page

DIFFERENCE 函數 - Amazon Redshift

Amazon Redshift 將不再支援在 2026 年 6 月 30 日之後使用 Python UDFs。我們將開始分階段強制執行。如需 Python 生命週期結束和遷移選項的詳細資訊,請參閱 2025 年 6 月 30 日發佈的部落格文章。

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

DIFFERENCE 函數

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

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

語法

DIFFERENCE(string1, string2)

引數

string1

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

string2

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

傳回類型

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 | +------------+

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

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

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

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

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

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