Función BPCHARCMP
Compara el valor de dos cadenas y devuelve un valor entero. Si las cadenas son idénticas, la función devuelve 0
. Si la primera cadena es mayor alfabéticamente, la función devuelve 1
. Si la segunda cadena es mayor, la función devuelve -1
.
Para caracteres multibyte, la comparación se basa en la codificación del byte.
Sinónimo de Función BTTEXT_PATTERN_CMP.
Sintaxis
BPCHARCMP(string1, string2)
Argumentos
- string1
-
Una cadena
CHAR
oVARCHAR
. - string2 (cadena2)
-
Una cadena
CHAR
oVARCHAR
.
Tipo de retorno
INTEGER
Ejemplos
En los siguientes ejemplos se utiliza la tabla VENUE de la base de datos de muestra de TICKIT. Para obtener más información, consulte Base de datos de muestra.
Para determinar si el nombre de un usuario es alfabéticamente mayor que el apellido del usuario para las primeras diez entradas en la tabla USERS, use el siguiente ejemplo. Para las entradas en las que la cadena de FIRSTNAME es posterior alfabéticamente a la cadena de LASTNAME, la función devuelve 1
. Si LASTNAME es alfabéticamente posterior a FIRSTNAME, la función devuelve -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 | +--------+-----------+-----------+-----------+
Para devolver todas las entradas de la tabla USERS en las que la función devuelve 0
, use el siguiente ejemplo. La función devuelve 0
cuando FIRSTNAME es idéntico a LASTNAME.
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 | +--------+-----------+----------+-----------+