Función POSITION

POSITION es una función de manejo de series que maneja todos los tipos de datos (BIT, BLOB y CHARACTER), y devuelve la posición de una serie en otra.

Sintaxis

POSITION devuelve un entero que indica la posición de una serie (ExpresiónBúsqueda) en una segunda serie (ExpresiónOrigen). Una posición de uno corresponde al primer carácter de la serie de origen.

Si está presente, la cláusula FROM proporciona una posición en la serie de búsqueda en la que comienza la búsqueda. En ausencia de una cláusula FROM, se busca en la serie de origen desde el principio.

Si está presente, la cláusula REPEAT suministra una cuenta de repeticiones, devolviendo la posición devuelta a la de la enésima aparición de la serie de búsqueda en la serie de origen. Si la cuenta de repeticiones es negativa, se busca en la serie de origen desde el final.

En ausencia de una cláusula REPEAT, se supone una cuenta de repeticiones de +1; es decir, se devuelve la posición de la primera aparición, buscando desde el principio. Si la serie de búsqueda tiene una longitud de cero, el resultado es uno.

Si no se encuentra la serie de búsqueda, el resultado es cero: si la cláusula FROM está presente, esto sólo se aplica a la sección de la serie de origen en la que se busca; si la cláusula REPEAT está presente, sólo se aplica si las apariciones de la serie son insuficientes.

Si cualquier parámetro es NULL, el resultado es NULL.

Las series de búsqueda y de origen pueden tener el tipo de datos CHARACTER, BLOB o BIT, pero deben ser del mismo tipo.

Por ejemplo:
         POSITION('Village' IN 'Hursley Village');   devuelve 9
         POSITION('Town' IN 'Hursley Village');   devuelve 0

         POSITION ('B' IN 'ABCABCABCABCABC'); -> devuelve 2
         POSITION ('D' IN 'ABCABCABCABCABC'); -> devuelve 0

         POSITION ('A' IN 'ABCABCABCABCABC' FROM 4); -> devuelve 4
         POSITION ('C' IN 'ABCABCABCABCABC' FROM 2); -> devuelve 3

         POSITION ('B' IN 'ABCABCABCABCABC' REPEAT 2); -> devuelve 5
         POSITION ('C' IN 'ABCABCABCABCABC' REPEAT 4); -> devuelve 12

         POSITION ('A' IN 'ABCABCABCABCABC' FROM 4 REPEAT 2); -> devuelve 7
         POSITION ('AB' IN 'ABCABCABCABCABC' FROM 2 REPEAT 3); -> devuelve 10

         POSITION ('A' IN 'ABCABCABCABCABC' REPEAT -2); -> devuelve 10
         POSITION ('BC' IN 'ABCABCABCABCABC' FROM 2 REPEAT -3); -> devuelve 5

Conceptos relacionados
ESQL

Tareas relacionadas
Desarrollo de ESQL
Selección de un subcampo a partir de un campo mayor

Referencia relacionada
Preferencia de sintaxis
Funciones de manejo de series ESQL