SubField - función de script y de gráfico
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.
Syntax:
SubField(text, delimiter[, field_no ])
Return data type: cadena
Arguments:
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.
|
Example:
Agregue el script de ejemplo en su app y ejecútelo. Luego, agregue los campos enumerados en la columna de resultados a una hoja de su app para ver el resultado.
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;
Name | FirstName | Surname |
---|---|---|
Dave Owen | Dave | Owen |
Joe Tem | Joe | Tem |
Example:
Este ejemplo muestra cómo usar 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 sirve para evitar crear registros duplicados.
Agregue el script de ejemplo en su app y ejecútelo. Luego, agregue los campos enumerados en la columna de resultados a una hoja de su app para ver el resultado.
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 '|');
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 |