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.