Accéder au contenu principal

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 SubField
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.

  • 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.

 

Exemples 1-3
Exemple Résultat
SubField('abc;cde;efg', ';', 2) Renvoie 'cde'.
SubField('', ';', 1) Renvoie NULL.
SubField(';', ';', 1) Renvoie une chaîne vide.

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

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;

Exemple 4
Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem

Supposons que vous ayez une variable avec un nom de chemin d'accès vMyPath,

Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;.

Dans un graphique avec texte et image, vous pouvez ajouter une mesure telle que
SubField(vMyPath, '\',-3), ce qui aboutit à 'Qlik', car il s'agit de la troisième sous-chaîne en partant de l'extrémité droite de la variable vMyPath.

Cet exemple illustre le mode de création de lignes multiples à partir d'une instance unique de Subfield().

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

LOAD DISTINCT

Player,

SubField(Project,',') as Project;

 

Load * inline [

Player|Project

Neil|Music,OST

Jo|Music

Mike|Music,OST,Video

] (delimiter is '|');

Exemple 5
Player Project
Neil Music
Neil OST
Jo Music
Mike Music
Mike OST
Mike Video

Cet exemple montre comment l'utilisation de plusieurs instances de la fonction Subfield(), chacune sans le paramètre field_no, au sein de la même instruction LOAD, crée des produits cartésiens de toutes les combinaisons. L'option DISTINCT est utilisée pour éviter la création d'enregistrements doublons.

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

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

Exemple 6
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

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 !

Rejoignez le Programme de modernisation analytique

Remove banner from view

Modernisez votre système sans compromettre vos précieuses applications QlikView grâce au Programme de modernisation analytique. Cliquez ici pour plus d'informations ou contactez : ampquestions@qlik.com