SUBSTRING: Cómo extraer una subcadena de una cadena de origen

Cómo:

La función SUBSTRING extrae una subcadena de una cadena de origen . Si la posición final que ha especificado para la subcadena sobrepasa el final de la cadena de origen, la posición del último carácter de la cadena de origen pasa ser la posición final de la subcadena.


Principio de página

x
Sintaxis: Cómo Extraer una subcadena de una cadena de origen
SUBSTRING(string, position, length)

donde:

string

Alfanumérico

Es la cadena de origen de la que se extrae la subcadena. Puede tratarse de un campo, un número entre comillas simples (‘) o de una variable.

position

Número entero

Es la posición inicial de la subcadena en string. Si la posición es 0, se trata como si fuera 1. Si la posición es negativa, la posición inicial empieza a contarse hacia atrás, a partir del final de string.

length

Número entero

El límite de longitud de la subcadena. La posición final de la subcadena se calcula como position + length -1. Si la posición calculada sobrepasa el final de la cadena de origen, la posición del último carácter de string se convierte en la posición final.

Los datos de la subcadena devuelta son de tipo AnV.



Ejemplo: Cómo extraer una subcadena de una cadena de origen

En la siguiente solicitud, POSITION determina la posición de la primera letra I en mayúscula, en LAST_NAME, y guarda el resultado en I_IN_NAME: A continuación, SUBSTRING extrae tres caracteres, empezando por la letra I de LAST_NAME, y guarda los resultados en I_SUBSTR.

TABLE FILE EMPLOYEE
PRINT
COMPUTE
I_IN_NAME/I2 = POSITION('I', LAST_NAME); AND
COMPUTE
I_SUBSTR/A3 =
SUBSTRING(LAST_NAME, I_IN_NAME, I_IN_NAME+2);
BY LAST_NAME
ON TABLE SET PAGE NOPAGE
END

La salida es:

  LAST_NAME        I_IN_NAME  I_SUBSTR                  
  ---------        ---------  --------                             
  BANNING                  5  ING     
  BLACKWOOD                0  BL      
  CROSS                    0  CR      
  GREENSPAN                0  GR      
  IRVING                   1  IRV     
  JONES                    0  JO      
  MCCOY                    0  MC      
  MCKNIGHT                 5  IGH     
  ROMANS                   0  RO      
  SMITH                    3  ITH     
                           3  ITH     
  STEVENS                  0  ST    

WebFOCUS