SubField() se utiliza para extraer componentes de subcadenas de un campo de cadena principal, donde los campos de registro originales constan de dos o más partes separadas por un delimitador.
La función Subfield() debe utilizarse, por ejemplo, para extraer el nombre y apellido de una lista de registros que contienen nombres completos, las partes que componen el nombre de una ruta, o para extraer datos de tablas separadas por comas.
Si utiliza la función Subfield() en una sentencia LOAD con el parámetro opcional field_no omitido, se generará un registro completo para cada subcadena. Si se cargan varios campos utilizando Subfield() se crean los productos cartesianos de todas las combinaciones.
Sintaxis:
SubField(text,
delimiter[, field_no ])
Tipo de datos que devuelve: cadena
Argumentos
Argumento
Descripción
text
La cadena original. Puede ser un texto escrito directamente en el código, una variable, una expansión de signo dólar u otra expresión.
delimiter
Un carácter dentro de los datos introducidos en text que divide la cadena en partes componentes.
field_no
El tercer argumento opcional es un entero que especifica cuál de las subcadenas de la cadena principal text se devolverá. Utilice el valor 1 para volver a la primera subcadena, 2 para volver a la segunda subcadena, etc.
Si field_no es un valor positivo, las subcadenas se extraen de izquierda a derecha.
Si field_no es un valor negativo, las subcadenas se extraen de derecha a izquierda.
Nota de sugerenciaSubField() se puede usar en lugar de utilizar combinaciones complejas de funciones como Len(), Right(), Left(), Mid() y otras funciones de cadena.
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Un conjunto de datos que se carga en una tabla de datos denominada Example.
Un campo de la tabla de datos llamado Name.
Script de carga
Example:
Load * inline [
Name
Dave Owen
Joe Tem
];
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:
Name
Cree las siguientes dimensiones calculadas:
=SubField(Name, ' ',1), para extraer la primera subcadena que aparezca antes del delimitador de espacio ' '.
=SubField(Name, ' ',-1), para extraer la primera subcadena que aparezca antes del delimitador de espacio ' ', empezando por la derecha de la cadena.
Results table
Name
SubField(Name, ' ',1)
SubField(Name, ' ',-1)
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
La función SubField() extrae la primera subcadena de Name poniendo el argumento field_no a 1. Como el valor de field_no es positivo, se sigue un orden de izquierda a derecha para extraer la subcadena. Una segunda llamada a la función extrae la segunda subcadena estableciendo el argumento field_no en -1, lo que extrae la subcadena siguiendo un orden de derecha a izquierda.
Script de carga
Abra el Editor de carga de datos y agregue el siguiente script de carga en una nueva pestaña.
FullName:
LOAD * inline [
Name
'Dave Owen'
'Joe Tem'
];
SepNames:
Load Name,
SubField(Name, ' ',1) as FirstName,
SubField(Name, ' ',-1) as Surname
Resident FullName;
Drop Table FullName;
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
Name
FirstName
SurName
Results table
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Explicación
La función SubField extrae la primera subcadena, Name, poniendo el argumento field_no a 1. Como el valor de field_no es positivo, se sigue un orden de izquierda a derecha para extraer la subcadena. Una segunda llamada a la función extrae la segunda subcadena estableciendo el argumento field_no en -1, lo que extrae la subcadena siguiendo un orden de derecha a izquierda.
Ejemplo: uso de SubField
Descripción
Un conjunto de datos de productos contiene una tabla de productos. Cada producto de la tabla tiene un campo de etiqueta que identifica el área del producto. Los productos pueden tener varios valores para el campo etiqueta. Por ejemplo, el widget A tiene las siguientes etiquetas: Electrónica, Gadgets, Hogar. Los valores de las etiquetas están separados por el carácter vertical (|) como delimitador. Este ejemplo muestra cómo extraer valores de etiqueta específicos utilizando la función SubField.
Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.
El script de carga contiene:
Un conjunto de datos que se carga en una tabla de datos denominada Example.
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
ProductID
ProductName
Tags
Cree las siguientes dimensiones calculadas:
=SubField(Tags, '|',1), para extraer el primer elemento del campo Tags.
=SubField(Tags, '|',2), para extraer el segundo elemento del campo Tags.
=SubField(Tags, '|',3), para extraer el tercer elemento del campo Tags.
Results table
ProductID
ProductName
Tags
SubField(Tags, '|', 1)
SubField(Tags, '|', 2)
SubField(Tags, '|', 3)
1
Widget A
Electronics|Gadgets|Home
Electronics
Gadgets
Home
2
Widget B
Electronics|Accessories
Electronics
Accessories
-
3
Widget C
Furniture|Home
Furniture
Home
-
4
Widget D
Gadgets|Accessories
Gadgets
Accessories
-
El resultado de las funciones SubField ha devuelto con éxito las etiquetas de las posiciones relevantes en la cadena Tags original.
Script de carga
Abra el Editor de carga de datos y agregue el siguiente script de carga en una nueva pestaña.
LOAD DISTINCT
Instrument,
SubField(Player,',') as Player,
SubField(Project,',') as Project;
Load * inline [
Instrument|Player|Project
Guitar|Neil,Mike|Music,Video
Guitar|Neil|Music,OST
Synth|Neil,Jen|Music,Video,OST
Synth|Jo|Music
Guitar|Neil,Mike|Music,OST
] (delimiter is '|');
Resultados
Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:
Instrument
Player
Project
Results table
Instrument
Player
Project
Guitar
Mike
Music
Guitar
Mike
Video
Guitar
Mike
OST
Guitar
Neil
Music
Guitar
Neil
Video
Guitar
Neil
OST
Synth
Jen
Music
Synth
Jen
Video
Synth
Jen
OST
Synth
Jo
Music
Synth
Neil
Music
Synth
Neil
Video
Synth
Neil
OST
Explicación
Este ejemplo muestra cómo el uso de múltiples instancias de la función Subfield(), cada una con el parámetro field_no omitido, desde dentro de la misma sentencia LOAD crea productos cartesianos de todas las combinaciones. La opción DISTINCT se utiliza para evitar la creación de registros duplicados.
¿Esta página le ha sido útil?
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.