SubField - fonction de script et fonction de graphique
SubField() permet d'extraire des composants de sous-chaîne d'un champ de chaîne parent, où les champs d'enregistrement d'origine se composent de plusieurs parties séparées par un délimiteur.
La fonction Subfield() peut s'utiliser, par exemple, pour extraire le prénom et le nom de famille d'une liste d'enregistrements constituée de noms complets, les parties de composant d'un nom de chemin ou encore les données de tables séparées par des virgules.
Si vous utilisez la fonction Subfield() dans une instruction LOAD en ignorant le paramètre field_no facultatif, un enregistrement complet sera généré pour chaque sous-chaîne. Si plusieurs champs sont chargés à l'aide de la fonction Subfield(), les produits cartésiens de toutes les combinaisons sont créés.
SubField(text,
delimiter[, field_no ])
chaîne
Arguments
Argument
Description
text
Chaîne d'origine. Il peut s'agir d'un texte codé de manière irréversible, d'une variable, d'une expansion dollar ou d'une autre expression.
delimiter
Caractère inclus dans la chaîne d'entrée text qui divise la chaîne en plusieurs composants.
field_no
Le troisième argument, facultatif, est un entier spécifiant laquelle des sous-chaînes de la chaîne parent text doit être renvoyée. Utilisez la valeur 1 pour renvoyer la première sous-chaîne, la valeur 2 pour renvoyer la deuxième sous-chaîne, et ainsi de suite.
Si field_no est une valeur positive, les sous-chaînes sont extraites de gauche à droite.
Si field_no est une valeur négative, les sous-chaînes sont extraites de droite à gauche.
Note Conseil Il est possible d'utiliser SubField() à la place de combinaisons de fonctions complexes telles que Len(), Right(), Left(), Mid() et d'autres fonctions de chaîne.
Examples: Chart expressions
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.
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.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !