

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 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 函数
BPCHARCMP

比较两个字符串的值并返回整数。如果字符串相同，此函数返回 `0`。如果按字母顺序，第一个字符串更靠后，则函数返回 `1`。如果第二个字符串较大，则函数返回 `-1`。

对于多字节字符，该比较基于字节编码。

[BTTEXT\$1PATTERN\$1CMP 函数](r_BTTEXT_PATTERN_CMP.md)的同义词。

## 语法
语法

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

## 参数
参数

 *string1*   
`CHAR` 字符串或 `VARCHAR` 字符串。

 *string2*   
`CHAR` 字符串或 `VARCHAR` 字符串。

## 返回类型
返回类型

 INTEGER 

## 示例
示例

 以下示例使用 TICKIT 示例数据库中的 USERS 表。有关更多信息，请参阅 [示例数据库](c_sampledb.md)。

要确定 USERS 表中前十个条目的用户的名字在字母顺序上是否比其姓氏更靠后，请使用以下示例。对于 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 |
+--------+-----------+-----------+-----------+
```

要返回 USERS 表中该函数返回 `0` 的所有条目，请使用以下示例。当 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 |
+--------+-----------+----------+-----------+
```