BPCHARCMP 函数
比较两个字符串的值并返回整数。如果字符串相同,此函数返回 0
。如果按字母顺序,第一个字符串更靠后,则函数返回 1
。如果第二个字符串较大,则函数返回 -1
。
对于多字节字符,该比较基于字节编码。
语法
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 | +--------+-----------+----------+-----------+