

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# DIFFERENCE 函數
<a name="DIFFERENCE"></a>

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

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

## 語法
<a name="DIFFERENCE-synopsis"></a>

```
DIFFERENCE(string1, string2)
```

## 引數
<a name="DIFFERENCE-arguments"></a>

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

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

## 傳回類型
<a name="DIFFERENCE-return-type"></a>

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

## 範例
<a name="DIFFERENCE-examples"></a>

若要比較字串 `%` 和 `@` 的 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 |
+------------+
```