Descripción: Devuelve una subcadena de una cadena alfanumérica, empezando en la posición dada y terminando en la longitud dada o en el final de la cadena alfanumérica.

Tipo de resultado: Varchar o BLOB

Sintaxis:

SUBSTRING(cadena_alfanumérica FROM posición_inicial  [FOR longitud])

Esta función devuelve una subcadena que empieza en posición_inicial (la posición del primer caracter de la cadena es 1) . Sin el argumento FOR, devuelve todos los caracteres restantes de la cadena alfanumérica. Con el argumento FOR devuelve los siguientes longitud caracteres o los caracteres restantes, lo que sea más corto.

Posición_inicial y longitud también pueden ser columnas o fórmulas que devuelvan números enteros

Esta función soporta BLOBs de texto y binarios de cualquier longitud. Si cadena_alfanumérica es un BLOB, el resultado es también un BLOB. En todos los demás casos el resultado es un Varchar.

Si el argumento no es un BLOB, la longitud del resultado siempre es igual a la longitud de cadena_alfanumérica, sin importar ni la posición_inicial ni la longitud. Así, por ejemplo, SUBSTR(‘Napoleón’ FROM 4 FOR 2) devolverá un Varchar(8) porque la palabra ‘Napoleón’ tiene 8 caracteres y ese Varchar contendrá la palabra ‘ol’.

Si cualquiera de los argumentos es NULL, el resultado será NULL.

Ejemplo:

INSERT INTO
   PROCEDENCIAS
   (PRO_CODPAI)
   SELECT
      SUBSTRING(PAI_NOMBRE FROM 1 FOR 3)
   FROM
      PAISES

Este INSERT insertará una fila a la tabla PROCEDENCIAS. La columna PRO_CODPAI (código del país) contendrá los primeros 3 caracteres del nombre del país, obtenidos de la tabla PAISES.

.