BPCHARCMP 函数 - Amazon Redshift

BPCHARCMP 函数

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

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

BTTEXT_PATTERN_CMP 函数的同义词。

语法

BPCHARCMP(string1, string2)

参数

string1

CHAR 字符串或 VARCHAR 字符串。

string2

CHAR 字符串或 VARCHAR 字符串。

返回类型

INTEGER

示例

以下示例使用 TICKIT 示例数据库中的 USERS 表。有关更多信息,请参阅 示例数据库

要确定 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 | +--------+-----------+----------+-----------+