SubField() wird zur Extrahierung von Teilstring-Komponenten aus einem übergeordneten Stringfeld verwendet, bei dem die Ursprungsdatensatzfelder aus zwei oder mehr Teilen bestehen, die durch ein Trennzeichen getrennt sind.
Die Funktion Subfield() kann zum Beispiel verwendet werden, um Vor- und Nachnamen aus einer Liste von Datensätzen, die aus Vor- und Nachname bestehen, die Komponenten eines Pfadnamens oder Daten aus kommagetrennten Tabellen zu extrahieren.
Wenn Sie die Funktion Subfield() in einem LOAD-Befehl ohne den optionalen Parameter field_no verwenden, wird für jeden Teilstring ein vollständiger Datensatz generiert. Wenn mehrere Felder mit Subfield() geladen werden, werden die kartesischen Produkte aller Kombinationen erstellt.
Syntax:
SubField(text,
delimiter[, field_no ])
Rückgabe Datentyp: String
Argumente:
Argumente
Argument
Beschreibung
text
Der Original-String. Dabei kann es sich um hartcodierten Text, eine Variable, eine Dollarzeichenerweiterung oder eine andere Formel handeln.
delimiter
Ein Zeichen in der Eingabe text, das den String in Komponenten aufteilt.
field_no
Das optionale dritte Argument ist eine Ganzzahl, die angibt, welcher der Teilstrings des übergeordneten Strings text geliefert werden soll. Verwenden Sie den Wert 1, um den ersten Teilstring zurückzugeben, den Wert 2, um den zweiten Teilstring zurückzugeben, usw.
Wenn field_no ein positiver Wert ist, werden Teilstrings von links nach rechts extrahiert.
Wenn field_no ein negativer Wert ist, werden Teilstrings von rechts nach links extrahiert.
TipphinweisSubField() kann anstelle komplexer Kombinationen von Funktionen wie Len(), Right(), Left(), Mid() und anderen Stringfunktionen verwendet werden.
Examples: Script and chart expressions using SubField
Basic examples
Example
Result
SubField(S, ';' ,2)
Returns 'cde' if S is 'abc;cde;efg'.
SubField(S, ';' ,1)
Returns an empty string if S is an empty string.
SubField(S, ';' ,1)
Returns an empty string if S is ';'.
Suppose you have a variable that holds a path name vMyPath,
Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;.
In a text & image chart, you can add a measure such as: SubField(vMyPath, '\',-3), which results in 'Qlik', because it is the substring third from the right-hand end of the variable vMyPath.
Script example 1
Load script
Load the following script expressions and data in the data load editor.
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;
Create a visualization
Create a table visualization in a Qlik Sensesheet with Name, FirstName, and SurName as dimensions.
Result
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Explanation
The SubField() function extracts the first substring of Name by setting the field_no argument to 1. Since the value of field_no is positive, a left to right order is followed for extracting the subtring. A second function call extracts the second substring by setting the field_no argument to -1, which extracts the substring following a right to left order.
Script example 2
Load script
Load the following script expressions and data in the data load editor.
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 '|');
Create a visualization
Create a table visualization in a Qlik Sense sheet with Instrument, Player, and Project as dimensions.
Result
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
Explanation
This example shows how using multiple instances of the Subfield() function, each with the field_no parameter left out, from within the same LOAD statement creates Cartesian products of all combinations. The DISTINCT option is used to avoid creating duplicate records.
Hat diese Seite Ihnen geholfen?
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!