Função BPCHARCMP
Compara o valor de duas strings e retorna um número inteiro. Se as strings forem idênticas, a função retornará 0
. Se a primeira string for alfabeticamente posterior, a função retornará 1
. Se a segunda string for posterior, a função retornará -1
.
Para caracteres multibyte, a comparação é baseada na codificação de byte.
Sinônimo de Função BTTEXT_PATTERN_CMP.
Sintaxe
BPCHARCMP(string1, string2)
Argumentos
- string1
-
Uma string
CHAR
ou uma stringVARCHAR
. - string2
-
Uma string
CHAR
ou uma stringVARCHAR
.
Tipo de retorno
INTEGER
Exemplos
Os exemplos a seguir usam a tabela USERS do banco de dados de amostra TICKIT. Para ter mais informações, consulte Banco de dados de exemplo.
Para determinar se o primeiro nome de um usuário é alfabeticamente posterior ao sobrenome do usuário para as dez primeiras entradas na tabela USERS, use o exemplo a seguir. Para entradas em que a string de FIRSTNAME for alfabeticamente posterior à string de LASTNAME, a função retornará 1
. Se LASTNAME for alfabeticamente posterior a FIRSTNAME, a função retornará -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 retornar todas as entradas na tabela USERS em que a função retorna 0
, use o exemplo a seguir. A função retorna 0
quando FIRSTNAME é 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 | +--------+-----------+----------+-----------+