Amazon Redshift dejará de admitir la creación de UDF de Python después del 30 de junio de 2026. Empezaremos a aplicarlo por fases. Para obtener más información sobre los detalles del fin de vida de Python y las opciones de migración, consulte la entrada del blog
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
CHARoVARCHAR. - string2 (cadena2
-
Una cadena
CHARoVARCHAR.
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 | +--------+-----------+----------+-----------+