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.