Cómo: |
Lenguajes disponibles: informes
La función SUBSTR extrae una subcadena en base al lugar en que comienza y a su longitud, en la cadena de origen. SUBSTR puede modificar la posición de la subcadena en función de los valores de otros campos.
Existe una versión de la función SUBSTR que sólo está disponible en el lenguaje Maintain. Para más información acerca de esta función, consulte SUBSTR: Cómo extraer una subcadena (Maintain).
SUBSTR(length, source_string, start, end, sublength, output)
donde:
Número entero
Es el número de caracteres de source_string, o un campo que contenga la longitud.
Alfanumérico
Es la cadena desde la que se va a extraer una subcadena, entre comillas simples, o el campo que contenga la cadena principal.
Número entero
Es la posición inicial de la subcadena dentro de la cadena de origen. Si start es inferior a uno o superior a length, la función devuelve espacios.
Número entero
Es la posición final de la subcadena. Si el argumento es inferior a start o superior a length, la función devuelve espacios.
Número entero
Es el número de caracteres de la subcadena (normalmente, end - start + 1). Si sublength es más larga que end - start +1, la subcadena se rellena con espacios finales. Si es más corta, la subcadena se trunca. Este valor debe ser la longitud declarada de output. Sólo se procesan los caracteres de sublength.
Alfanumérico
Es el campo al que se devuelve el resultado, o el formato del valor de salida entre comillas simples.
POSIT 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, SUBSTR 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 = POSIT(LAST_NAME, 15, 'I', 1, 'I2'); AND COMPUTE I_SUBSTR/A3 = SUBSTR(15, LAST_NAME, I_IN_NAME, I_IN_NAME+2, 3, I_SUBSTR); BY LAST_NAME WHERE DEPARTMENT EQ 'PRODUCTION' END
La salida es:
LAST_NAME I_IN_NAME I_SUBSTR --------- --------- -------- BANNING 5 ING IRVING 1 IRV MCKNIGHT 5 IGH ROMANS 0 SMITH 3 ITH STEVENS 0
Puesto que la letra I no aparece en los nombres de Romans y Stevens, SUBSTR extrae una cadena en blanco.
WebFOCUS |