Función FIND( )

Devuelve un valor lógico que indica si la cadena que se especificó está presente en un campo en particular o en algún lugar de un registro completo.

Nota

La función FIND( ) y el Comando FIND son dos funciones independientes de Analytics, que tienen diferencias significativas.

Sintaxis

FIND(cadena <;campo_donde_buscar>)

Parámetros

Nombre Tipo Descripción
cadena

carácter

La cadena de caracteres que se buscará. Esta búsqueda no distingue mayúsculas y minúsculas.
campo_donde_buscar

opcional

carácter

El campo o la variable en la cual se debe realizar la búsqueda. Si se omite, se busca en todo el registro, incluidas las partes no definidas del registro.

Salida

Lógico. Devuelve T (verdadero) si se determina el valor de la cadena especificada y F (falso) en caso contrario.

Ejemplos

Ejemplos básicos

Buscar en un registro completo

Devuelve T para todos los registros que contienen la cadena "New York" en cualquier campo, entre límites de campos y en cualquier parte no definida del registro. De lo contrario, devuelve F:

FIND("New York")

Buscar en un solo campo

Devuelve T para todos los registros que contienen la cadena "New York" en el campo Ciudad. De lo contrario, devuelve F.

FIND("New York"; Ciudad)

Devuelve T para todos los registros que contienen la cadena "Ne" en el campo Ciudad. De lo contrario, devuelve F:

FIND("Ne"; Ciudad)

Devuelve T para todos los registros que contienen la cadena "New York" precedida de uno o más espacios en el campo Ciudad. De lo contrario, devuelve F:

FIND(" New York"; Ciudad)

Devuelve T para todos los registros que tienen un valor en el campo Descripción que coincide con el valor de la variable v_término_búsqueda o que lo contiene. De lo contrario, devuelve F:

FIND(v_término_búsqueda; Descripción)

Buscar en varios campos

Devuelve T para todos los registros que contienen la cadena "New York" en el campo Ciudad o el campo Ciudad_2. De lo contrario, devuelve F:

FIND("New York"; Ciudad+Ciudad_2)

Devuelve T para todos los registros que contienen la cadena "New York" en el campo Ciudad o el campo Ciudad_2. De lo contrario, devuelve F:

FIND("New York"; Ciudad) OR FIND("New York"; Ciudad_2)

Combinación con otras funciones

Devuelve T para todos los registros que tienen un valor en el campo Apellido_2 que coincide con el valor del campo Apellido o que lo contiene. De lo contrario, devuelve F:

FIND(ALLTRIM(Apellido); Apellido_2)

Observaciones

Cuándo usar FIND( )

Utilice la función FIND( ) para comprobar la presencia de la cadena especificada en uno, dos o más campos, o un registro completo.

Cómo funciona la coincidencia

El valor de la cadena puede tener una coincidencia exacta o puede estar incluido dentro de una cadena más larga. Los espacios al principio no afectan la búsqueda, a menos que se incluyan uno o más espacios iniciales en el valor de la cadena.

Buscar en un registro completo

Si no se especifica el campo_donde_buscar opcional, se busca en todo el registro, incluida cualquier parte no definida del registro. Los límites del campo se ignoran cuando se realiza una búsqueda en todo el registro y los espacios al final de los campos se consideran como caracteres.

Nota

Cuando realice la búsqueda en un registro completo, se busca en el registro físico. No se realizan búsquedas en los campos calculados ni en los campos relacionados.

Buscar en un subconjunto de campos

Puede concatenar dos o más campos en el campo_donde_buscar si desea buscar en un subconjunto de campos de una tabla. Por ejemplo, para buscar la cadena "New York" tanto en el campo Ciudad como en el campo Ciudad_2.

FIND("New York"; Ciudad+Ciudad_2)

Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final de los campos individuales, a menos que utilice la función ALLTRIM( ) para quitar los espacios.

También puede generar una expresión que busque en cada campo de manera individual:

FIND("New York"; Ciudad) OR FIND("New York"; Ciudad_2)

Si una cadena incluye un espacio al principio, los resultados de la búsqueda de estos dos enfoques pueden diferir.

Comparaciones exactas de caracteres con distinción entre mayúsculas y minúsculas

La función FIND( ) no distingue mayúsculas y minúsculas, y encuentra tanto caracteres ASCII como EBCDIC. La función no se ve afectada por la opción Comparaciones de caracteres exactos (SET EXACT ON/OFF).

Buscar en un campo calculado

Para buscar en un campo calculado, debe especificar el nombre del campo en campo_donde_buscar). Por ejemplo, si Ciudad_proveedor es un campo calculado que aísla la ciudad en una dirección:

FIND("New York"; Ciudad_proveedor)

Buscar en un campo relacionado

Para buscar en un campo relacionado, debe especificar el nombre calificado completo del campo (es decir, tabla.nombre campo) en el valor campo_donde_buscar:

FIND("New York"; Proveedor.Ciudad_proveedor)

Buscar datos numéricos o de fechahora

Es posible usar la función FIND( ) para buscar datos numéricos o de fechahora a nivel del registro. No se admite la especificación del campo_donde_buscar para búsquedas numéricas o de fechahora.

La cadena numérica o de fechahora debe estar encerrada entre comillas y debe coincidir de forma exacta con el formato de los datos de origen en lugar de con el formato de la vista.

No se admite el uso de la función FIND para buscar datos numéricos o de fechahora en campos calculados o relacionados.

Nota

No se recomienda usar la función FIND( ) para buscar datos numéricos o de fechahora porque puede resultar difícil hacerlo con éxito.

Guía de creación de scripts de ACL 14.1