自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 | +------------+