Saltar al contenido principal

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:  

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.
Sugerencia: SubField() se puede usar en lugar de utilizar combinaciones complejas de funciones como Len(), Right(), Left(), Mid() y otras funciones de cadena.

Example:  

Agregue el script de ejemplo en su app y ejecútelo. A continuación, agregue como mínimo los campos de la columna de resultados en 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;

Tabla resultante
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. A continuación, agregue como mínimo los campos de la columna de resultados en 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 '|');

 

Tabla resultante
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