Função FIND( )

Retorna um valor lógico indicando se a cadeia de caracteres especificada está presente em um campo específico ou em qualquer local no registro.

Nota

A função FIND e o Comando FIND são dois recursos separados do Analytics com diferenças significativas.

Sintaxe

FIND(cadeia <;campo_a_ser_pesquisado>)

Parâmetros

Nome Tipo Descrição
cadeia

caractere

A cadeia de caracteres que deve ser pesquisada. Essa pesquisa não diferencia maiúsculas de minúsculas.
campo_a_ser_pesquisado

opcional

caractere

O campo ou variável a pesquisar. Se omitido, o registro inteiro é pesquisado, incluindo qualquer parte indefinida do registro.

Saída

Lógico. Retorna V (verdadeiro), se o valor da cadeia especificada for encontrada e F (falso), caso contrário.

Exemplos

Exemplos básicos

Pesquisa de um registro inteiro

Retorna T para todos os campos que contêm a cadeia "São Paulo" em qualquer campo, cruzando limites de campos e em qualquer parte indefinida do registro. Caso contrário, retorna F:

FIND("São Paulo")

Pesquisa por um campo único

Retorna T para todos os registros que contêm a cadeia "São Paulo" no campo Cidade. Caso contrário, retorna F.

FIND("São Paulo"; Cidade)

Retorna T para todos os registros que contêm a cadeia "Sã" no campo Cidade. Caso contrário, retorna F:

FIND("Sã"; Cidade)

Retorna T para todos os registros que contêm a cadeia "São Paulo" precedida por um ou mais espaços no campo Cidade. Caso contrário, retorna F:

FIND(" São Paulo"; Cidade)

Retorna T para todos os registros com um valor no campo Descrição igual ou que contém o valor da variável v_termo_pesquisa. Caso contrário, retorna F:

FIND(v_termo_pesquisa; Descricao)

Pesquisa de vários campos

Retorna T para todos os registros que contêm a cadeia "São Paulo" no campo Cidade ou Cidade_2. Caso contrário, retorna F:

FIND("São Paulo"; Cidade+Cidade_2)

Retorna T para todos os registros que contêm a cadeia "São Paulo" no campo Cidade ou Cidade_2. Caso contrário, retorna F:

FIND("São Paulo"; Cidade) OR FIND("São Paulo"; Cidade_2)

Combinação com outras funções

Retorna T para todos os registros com um valor no campo Sobrenome_2 que corresponde ou que contém o valor eliminado do campo Sobrenome. Caso contrário, retorna F:

FIND(ALLTRIM(Sobrenome); Sobrenome_2)

Observações

Quando usar FIND( )

Use a função FIND( ) para testar a presença da cadeia especificada em um campo, em dois ou mais campos, ou em um registro inteiro.

Como a correspondência funciona

O valor da cadeia pode ser correspondido exatamente ou pode estar contido em uma cadeia mais longa. Os espaços à esquerda nos campos não afetam a pesquisa, a menos que sejam incluídos um ou mais espaços no valor da cadeia.

Pesquisar um registro inteiro

Se o campo_a_ser_pesquisado opcional não for especificado, o registro completo será pesquisado, incluindo as partes indefinidas do registro. As fronteiras dos campos são ignoradas quando o registro inteiro é pesquisado e os espaços à direita nos campos são tratados como caracteres.

Nota

Quando você pesquisar um registro inteiro, será pesquisado o registro físico. Nenhum campo calculado ou campo relacionado é pesquisado.

Pesquisar um subconjunto de campos

É possível concatenar dois ou mais campos em campo_a_ser_pesquisado se quiser pesquisar em um subconjunto dos campos em uma tabela. Por exemplo, para pesquisar nos campos Cidade e Cidade_2 pela cadeia "São Paulo":

FIND("São Paulo"; Cidade+Cidade_2)

Os campos concatenados são tratados como um único campo que inclui os espaços à esquerda e à direita de cada campo, a menos que a função ALLTRIM( ) seja usada para remover espaços.

Também é possível criar uma expressão que pesquisa em cada campo individualmente:

FIND("São Paulo"; Cidade) OR FIND("São Paulo"; Cidade_2)

Se a cadeia incluir um espaço à esquerda, os resultados da pesquisa das duas abordagens podem ser diferentes.

Diferenciação entre maiúsculas e minúsculas e comparações exatas de caractere

A função FIND( ) não diferencia maiúsculas de minúsculas e encontra tanto caracteres ASCII quanto EBCDIC. A função não é afetada pela opção Comparações exatas de caractere (SET EXACT ON/OFF).

Pesquisar em um campo calculado

Para pesquisar em um campo calculado, o nome totalmente qualificado do campo deve ser especificado em campo_a_ser_pesquisado. Por exemplo, se Cidade_Fornecedor for um campo calculado que isola a cidade de um endereço:

FIND("São Paulo"; Cidade_Fornecedor)

Pesquisar em um campo relacionado

Para pesquisar em um campo relacionado, o nome totalmente qualificado do campo deve ser especificado (ou seja, tabela.campo nome) no valor campo_a_ser_pesquisado:

FIND("São Paulo"; Fornecedor.Cidade_Fornecedor)

Pesquisar dados datahora ou numéricos

É possível usar a função FIND( ) para pesquisar dados datahora ou numéricos nos registros. Não é permitido especificar o campo_a_ser_pesquisado nas pesquisas de datahora ou numéricas.

A cadeia numérica ou datahora deve estar entre aspas e precisa corresponder exatamente à formatação dos dados de origem, em vez da formação da exibição.

Não é permitido usar a função FIND( ) para pesquisar dados datahora ou numéricos em campos calculados ou relacionados.

Nota

Não recomendamos usar a função FIND( ) para pesquisar dados datahora ou numéricos porque pode ser difícil conseguir fazê-lo de forma bem-sucedida.