

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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 関数は 2 つの文字列の American Soundex コードを比較します。この関数は `INTEGER` を返し、Soundex コード間で一致する文字の数を示します。

 Soundex コードは 4 文字の長さの文字列です。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 関数は、American Soundex コードで 2 つの文字列内の一致する文字の数をカウントする `INTEGER` 値 0～4 を返します。Soundex コードは 4 文字であるため、文字列の American Soundex コード値の 4 文字すべてが同じ場合、DIFFERENCE 関数は `4` を返します。2 つの文字列のうちの 1 つが空の場合、DIFFERENCE は `0` を返します。この関数は、どちらの文字列にも有効な文字が含まれていない場合、`1` を返します。DIFFERENCE 関数は、a～z および A～Z を含む、英字のアルファベットで小文字または大文字の ASCII 文字のみを変換します。DIFFERENCE 関数は、他の文字を無視します。

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

文字列 `%` および `@` の Soundex 値を比較するには、次の例を使用します。この関数は、どちらの文字列にも有効な文字が含まれていないため、`1` を返します。

```
SELECT DIFFERENCE('%', '@');

+------------+
| difference |
+------------+
|          1 |
+------------+
```

`Amazon` および空の文字列の Soundex 値を比較するには、次の例を使用します。2 つの文字列のうちの 1 つが空であるため、この関数は `0` を返します。

```
SELECT DIFFERENCE('Amazon', '');

+------------+
| difference |
+------------+
|          0 |
+------------+
```

文字列 `Amazon` および `Ama` の Soundex 値を比較するには、次の例を使用します。文字列の Soundex 値の 2 文字が同じであるため、この関数は `2` を返します。

```
SELECT DIFFERENCE('Amazon', 'Ama');

+------------+
| difference |
+------------+
|          2 |
+------------+
```

文字列 `Amazon` および `+-*/%Amazon` の Soundex 値を比較するには、次の例を使用します。文字列の Soundex 値の 4 文字すべてが同じであるため、この関数は `4` を返します。この関数は、2 番目の文字列の無効な文字 `+-*/%` を無視することに注目してください。

```
SELECT DIFFERENCE('Amazon', '+-*/%Amazon');

+------------+
| difference |
+------------+
|          4 |
+------------+
```

文字列 `AC/DC` および `Ay See Dee See` の Soundex 値を比較するには、次の例を使用します。文字列の Soundex 値の 4 文字すべてが同じであるため、この関数は `4` を返します。

```
SELECT DIFFERENCE('AC/DC', 'Ay See Dee See');

+------------+
| difference |
+------------+
|          4 |
+------------+
```