Ga naar hoofdinhoud

SubField - script- en diagramfunctie

Subfield() wordt gebruikt voor het extraheren van onderdelen van subtekenreeksen van een bovenliggend tekenreeksveld, waarbij de oorspronkelijke recordvelden bestaat uit twee of meer onderdelen met een scheidingsteken ertussen.

De functie Subfield() kan bijvoorbeeld worden gebruikt om voornaam en achternaam te extraheren vanuit een lijst met records die bestaat uit volledige namen, de samenstellende delen van een padnaam of voor het extraheren van gegevens uit tabellen met door komma's gescheiden waarden.

Als u de functie Subfield() gebruikt in een opdracht LOAD terwijl de optionele parameter field_no wordt weggelaten, wordt één complete record gegenereerd voor elke subtekenreeks. Als meerdere velden worden geladen met Subfield(), worden de cartesische producten van alle combinaties gemaakt.

Syntax:  

SubField(text, delimiter[, field_no ])

Return data type: tekenreeks

Arguments:  

Argumenten
Argument Beschrijving
text De oorspronkelijke tekenreeks. Dit kan een hard gecodeerde tekst, een variabele, een uitbreiding met dollarteken of een andere uitdrukking zijn.
delimiter Een teken binnen de invoerreeks text die de tekenreeks opsplitst in samenstellende delen.
field_no

Het optionele derde argument is een geheel getal waarmee wordt opgegeven welke van de subtekenreeksen van de bovenliggende tekenreeks text moeten worden geretourneerd. Gebruik de waarde 1 om terug te keren naar de eerste subtekenreeks, 2 om terug te keren naar de tweede subtekenreeks, enzovoorts.

  • Als field_no een positieve waarde is, worden subtekenreeksen van links naar rechts geëxtraheerd.
  • Als field_no een negatieve waarde is, worden subtekenreeksen van rechts naar links geëxtraheerd.
Tip: SubField() kan worden gebruikt in plaats van complexe combinaties van functies zoals Len(), Right(), Left(), Mid() en andere tekenreeksfuncties.

Example:  

Voeg het voorbeeldscript toe aan uw app en voer het uit. Voeg vervolgens de velden die in de resultatenkolom staan aan een werkblad in uw app toe om het resultaat te bekijken.

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;

Resultaattabel
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Example:  

Dit voorbeeld laat zien dat als u meerdere exemplaren van de functie Subfield() gebruikt, elk met de parameter field_no weggelaten, binnen in dezelfde LOAD-opdracht, Cartesiaanse producten worden gemaakt van alle combinaties. De optie DISTINCT wordt gebruikt om te voorkomen dat dubbele records worden gemaakt.

Voeg het voorbeeldscript toe aan uw app en voer het uit. Voeg vervolgens de velden die in de resultatenkolom staan aan een werkblad in uw app toe om het resultaat te bekijken.

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

 

Resultaattabel
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