

 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/)を参照してください。

# BPCHARCMP 関数
<a name="r_BPCHARCMP"></a>

2 つの文字列の値を比較し、整数を返します。文字列が同じである場合、関数は `0` を返します。1 番目の文字列がアルファベット順でより大きい場合、関数は `1` を返します。2 番目の文字列がより大きい場合、関数は `-1` を返します。

マルチバイトの文字の場合は、バイトエンコーディングを基に比較が行われます。

[BTTEXT\_PATTERN\_CMP 関数](r_BTTEXT_PATTERN_CMP.md) のシノニム。

## 構文
<a name="r_BPCHARCMP-synopsis"></a>

```
BPCHARCMP(string1, string2)
```

## 引数
<a name="r_BPCHARCMP-arguments"></a>

 *string1*   
`CHAR` 文字列または `VARCHAR` 文字列。

 *string2*   
`CHAR` 文字列または `VARCHAR` 文字列。

## 戻り型
<a name="r_BPCHARCMP-return-type"></a>

 INTEGER 

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

 以下の例では、TICKIT サンプルデータベースの USERS テーブルを使用します。詳細については、「[サンプルデータベース](c_sampledb.md)」を参照してください。

USERS テーブル内の最初の 10 個のエントリについて、ユーザーの名と姓をアルファベット順で比較し、名が姓よりアルファベット順で先になるかどうかを判別するには、次の例を使用します。FIRSTNAME の文字列が LASTNAME の文字列よりアルファベット順で後になるエントリについては、関数は `1` を返します。LASTNAME が FIRSTNAME よりアルファベット順で後になる場合、関数は `-1` を返します。

```
SELECT userid, firstname, lastname, BPCHARCMP(firstname, lastname)
FROM users
ORDER BY 1, 2, 3, 4
LIMIT 10;

+--------+-----------+-----------+-----------+
| userid | firstname | lastname  | bpcharcmp |
+--------+-----------+-----------+-----------+
|      1 | Rafael    | Taylor    |        -1 |
|      2 | Vladimir  | Humphrey  |         1 |
|      3 | Lars      | Ratliff   |        -1 |
|      4 | Barry     | Roy       |        -1 |
|      5 | Reagan    | Hodge     |         1 |
|      6 | Victor    | Hernandez |         1 |
|      7 | Tamekah   | Juarez    |         1 |
|      8 | Colton    | Roy       |        -1 |
|      9 | Mufutau   | Watkins   |        -1 |
|     10 | Naida     | Calderon  |         1 |
+--------+-----------+-----------+-----------+
```

この関数が `0` を返す、USERS テーブル内のすべてのエントリを返すには、次の例を使用します。FIRSTNAME と LASTNAME が同じである場合、この関数は `0` を返します。

```
SELECT userid, firstname, lastname,
BPCHARCMP(firstname, lastname)
FROM users 
WHERE BPCHARCMP(firstname, lastname)=0
ORDER BY 1, 2, 3, 4;

+--------+-----------+----------+-----------+
| userid | firstname | lastname | bpcharcmp |
+--------+-----------+----------+-----------+
|     62 | Chase     | Chase    |         0 |
|   4008 | Whitney   | Whitney  |         0 |
|  12516 | Graham    | Graham   |         0 |
|  13570 | Harper    | Harper   |         0 |
|  16712 | Cooper    | Cooper   |         0 |
|  18359 | Chase     | Chase    |         0 |
|  27530 | Bradley   | Bradley  |         0 |
|  31204 | Harding   | Harding  |         0 |
+--------+-----------+----------+-----------+
```