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.