Función SUBSTR( )
Devuelve una subcadena especificada de una cadena.
Sintaxis
SUBSTR(cadena; inicio; longitud)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
cadena | carácter | El valor de donde se extrae la subcadena. |
inicio | numérico | La posición de carácter inicial de la subcadena. |
longitud | numérico |
El número de caracteres en la subcadena. Si la longitud es 0, la salida aparece en blanco. |
Salida
Carácter.
Ejemplos
Ejemplos básicos
Valor de entrada de caracteres literales
Devuelve "BCD":
SUBSTR("ABCDEF"; 2; 3)
Devuelve "EF":
SUBSTR("ABCDEF"; 5; 10)
Análisis de los datos de caracteres estructurados
Devuelve "189543":
SUBSTR("***189543***"; 4; 6)
Devuelve el año de cuatro dígitos a partir de un campo de caracteres que contiene fechas con el formato "MM/DD/AAAA":
SUBSTR(DATE; 7; 4)
Ejemplos avanzados
Incremento de la longitud del campo
Utilice SUBSTR( ) para incrementar la longitud de un campo de caracteres. El incremento de la longitud de un campo es una tarea común de armonización que puede necesitar realizar antes de unir o anexar dos campos.
El siguiente ejemplo completa el campo Descripción_del_producto con espacios en blanco para crear el campo calculado Descripción_del_producto_extensa con una longitud de 50 caracteres.
DEFINE FIELD Descripción_del_producto_extensa COMPUTED SUBSTR(Descripción_del_producto; 1; 50)
Observaciones
Cómo funciona
La función SUBSTR( ) devuelve caracteres del valor cadena que comienzan desde la posición de caracteres especificada por inicio. El número de caracteres devuelto se especifica en longitud.
Cómo maneja los espacios SUBSTR( )
Los espacios al principio, al final o en el medio de la cadena se tratan como caracteres. Los espacios captados por inicio y longitud se incluyen en la cadena de salida.
Cómo funciona el relleno
Si el valor longitud excede el número de caracteres, incluidos los espacios al final, desde la posición de inicio hasta el final de la cadena, la cadena de salida puede rellenarse o no por la derecha con espacios:
Relleno con espacios
Si utiliza SUBSTR( ) dentro de un comando que crea un campo, la salida se rellena con espacios.
Relleno al crear un campo calculado
Crea el campo calculado Descripción_del_producto_extensa, con una longitud de 50 caracteres, sobre la base del campo físico Descripción_del_producto, con una longitud de 24 caracteres:
DEFINE FIELD Descripción_del_producto_extensa COMPUTED SUBSTR(Descripción_del_producto; 1; 50)
Relleno al extraer un campo físico
Extrae el campo calculado Descripción_del_producto_extensa, con una longitud de 50 caracteres, a una nueva tabla, sobre la base del campo físico Descripción_del_producto, con una longitud de 24 caracteres:
EXTRACT FIELDS SUBSTR(Descripción_del_producto; 1; 50) AS "Descripción_del_producto_extensa" TO Nueva_tabla
Sin relleno con espacios
Si utiliza SUBSTR( ) en una definición de variable o una expresión, la salida no se rellena con espacios.
Sin relleno al definir una variable
Crea la variable v_desc_prod, con una longitud de 24 caracteres, sobre la base de una longitud de campo de Descripción_del_producto:
ASSIGN v_desc_prod = SUBSTR(Descripción_del_producto; 1; 50)
Nota
Aun cuando SUBSTR( ) especifique una longitud de 50 caracteres, la salida se limita a la longitud del campo Descripción_del_producto.
Funciones relacionadas
SUBSTR( ) y SPLIT( ) devuelven un segmento de datos de una cadena de origen más extensa.
- SUBSTR( ) identifica el segmento sobre la base de una posición numérica de los caracteres.
- SPLIT( ) identifica el segmento sobre la base de un carácter separador.