Função BPCHARCMP - Amazon Redshift

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 string VARCHAR.

string2

Uma string CHAR ou uma string VARCHAR.

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 | +--------+-----------+----------+-----------+