Función AT( )

Devuelve un número que especifica el lugar de inicio de una incidencia particular de una subcadena dentro de un valor de caracteres.

Sintaxis

AT(empieza_en_núm; cadena; dentro_de_texto)

Parámetros

Nombre Tipo Descripción
núm_instancia

numérico

La instancia de cadena_de_búsqueda de la cual se debe devolver la ubicación.

Por ejemplo, especifique 1 para devolver la ubicación inicial de la primera instancia de la cadena de búsqueda.

cadena

carácter

La subcadena que se debe buscar en dentro_de_texto. El valor distingue entre mayúsculas y minúsculas.

Si el valor de cadena_de_búsqueda incluye comillas dobles, necesita encerrarlo entre comillas simples:

AT(1;'"prueba"'; Descripción)
dentro_de_texto carácter

El valor para buscar.

Puede concatenar dos o más campos en el parámetro dentro_de_texto si desea buscar en más de un campo de una tabla:

AT(1;'"prueba"'; Descripción+Resumen)

Salida

Numérico. Devuelve la posición inicial del byte de la ocurrencia específica del valor cadena , ó 0 si no se encuentra ninguna incidencia.

Ejemplos

Ejemplos básicos

Instancias encontradas

Devuelve 4:

AT(1; "-"; "604-669-4225")

Devuelve 8:

AT(2; "-"; "604-669-4225")

Instancias no encontradas

Devuelve 0 porque no hay un tercer guion en el valor:

AT(3; "-"; "604-669-4225")

Devuelve 0 porque no hay una cuarta "a" minúscula en el valor:

AT(4; "a"; "Alabama")

Grupos de caracteres

Devuelve 5:

AT(2; "iss"; "Mississippi")

Buscar en un campo

Devuelve la posición de byte del primer guion de cada valor del campo Número_de_factura:

AT(1; "-"; Número_de_factura)

Ejemplos avanzados

Hallar números de factura en los que el segundo guion aparezca después de la décima posición de bytes

Es posible analizar la consistencia de los números de factura en una tabla utilizando la función AT( ) para crear un filtro como el que se incluye a continuación. Este filtro aísla todos los registros en los cuales el número de factura contiene dos o más guiones y el segundo guion ocurre después de la décima posición de byte.

SET FILTER TO AT(2; "-"; Número_de_factura) > 10

Observaciones

Cuándo utilizar AT( )

Utilice esta función para recuperar las siguientes posiciones iniciales dentro de un valor de carácter:

  • la posición inicial de una subcadena
  • la posición inicial de una instancia subsiguiente de la subcadena

Si solo desea confirmar varias incidencias de la misma subcadena en un campo, la función OCCURS( ) es una mejor alternativa. Si desea obtener más información, consulte Función OCCURS( ).

Devolver valor cuando núm_instancia supera la cantidad de instancias

Si núm_instancia es mayor que la cantidad real de instancias de la subcadena en dentro_de_texto, la función devuelve 0 porque no puede encontrar esa instancia de la subcadena.

Campos concatenados y valores devueltos

Al realizar una búsqueda en más de un campo, el valor devuelto para la instancia es la ubicación inicial de cadena_de_búsqueda en todos los campos que especifique. 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.

Por ejemplo, si busca la primera instancia de una cadena en dos campos con un ancho de ocho caracteres cada uno y la cadena se encuentra al principio del segundo campo, el valor devuelto es 9.

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