Descripción: Devuelve la posición (basada en 1) de la primera ocurrencia de una subcadena en una cadena alfanumérica. Si se especifica el opcional tercer argumento la búsqueda empieza desde allí. Si no se encuentra coincidencia entonces devuelve 0.

Tipo de resultado: Integer

Sintaxis:

POSITION(<argumentos>)

<argumentos> = subcadena IN cadena_alfanumérica 

| subcadena, cadena_alfanumérica [, posición_inicial]

  • El opcional tercer argumento solamente es soportado en la segunda sintaxis (sintaxis de coma)
  • La cadena alfanumérica vacía es considerada una subcadena de cualquier cadena alfanumérica. Por lo tanto, si subcadena es ” (una cadena vacía) y cadena_alfanumérica no es NULL, el resultado es:

* 1 si posición_inicial no se especificó

* posición_inicial si posición_inicial cabe dentro de cadena_alfanumérica

* 0 si posición_inicial es mayor que la cantidad de caracteres de cadena_alfanumérica

Ejemplos:

SELECT
   POSITION('POLE' IN 'NAPOLEÓN')
FROM
   RDB$DATABASE

* Devolverá 3 porque 'POLE' se encuentra a partir del tercer carácter de 'NAPOLEÓN'

SELECT
   POSITION('L' IN 'NAPOLEÓN')
FROM
   RDB$DATABASE

* Devolverá 5 porque la letra 'L' se encuentra en el quinto carácter de 'NAPOLEÓN'

SELECT
   POSITION('M' IN 'NAPOLEÓN')
FROM
   RDB$DATABASE

* Devolverá 0 porque la letra 'M' no se encuentra dentro de la palabra 'NAPOLEÓN'