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