Gå till huvudinnehåll

SubField - skript- och diagramfunktion

Subfield() används för att extrahera delsträngkomponenter från ett överordnat strängfält där de ursprungliga postfälten består av två eller fler delar, som separeras av en avgränsare.

Subfield()-funktionen kan användas till exempel för att extrahera förnamn och efternamn från en lista av poster som innehåller fullständiga namn, komponentdelarna i ett sökvägsnamn eller för att extrahera data från kommaavgränsade tabeller.

Om du använder funktionen Subfield() i en LOAD-sats med den valbara parametern field_no utelämnad kommer en fullständig post genereras för varje delsträng. Om flera fält laddas med hjälp av Subfield() skapas de kartesiska produkterna för alla kombinationer.

Syntax:  

SubField(text, delimiter[, field_no ])

Return data type: sträng

Arguments:  

Argument
Argument Beskrivning
text Den ursprungliga strängen. Detta kan vara en hårdkodad text, en variabel, en dollarteckensexpansion eller ett annat uttryck.
delimiter Ett tecken med indata-text som delar in strängen i dess komponentdelar.
field_no

Det valbara tredje argumentet är ett heltal som vilka av delsträngarna i den överordnade strängen text som ska returneras. Använd värdet 1 om du vill returnera den första delsträngen, 2 om du vill returnera den delsträngen och så vidare.

  • Om field_no är ett positivt värde extraheras understrängar från vänster till höger.
  • Om field_no är ett negativt värde extraheras understrängar från höger till vänster.
Tips: SubField() kan användas istället för att använda komplexa kombinationer av funktioner, som t.ex. Len(), Right(), Left(), Mid() och andra strängfunktioner.

Example:  

Lägg till exempelskriptet i appen och kör det. Lägg sedan till de fält som listas i resultatkolumnen till ett ark i din app för att se resultatet.

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;

Resultattabell
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Example:  

Det här exemplet visar hur användning av flera instanser av funktionen Subfield(), där parametern field_no har utelämnats, inom samma LOAD-sats skapar kartesiska produkter av alla kombinationerna. Alternativet DISTINCT används för att undvika att skapa dubbletter av poster.

Lägg till exempelskriptet i appen och kör det. Lägg sedan till de fält som listas i resultatkolumnen till ett ark i din app för att se resultatet.

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 '|');

 

Resultattabell
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