SubField() consente di estrarre i componenti della sottostringa da un campo della stringa padre, in cui i campi del record originali sono costituiti da due o più parti separate da un delimitatore.
La funzione Subfield(), ad esempio, consente di estrarre il nome di battesimo e il cognome da un elenco di record composto da nomi completi, le parti del componente di un nome del percorso o di estrarre dati da tabelle separate da virgole.
Se si utilizza la funzione Subfield() in un'istruzione LOAD escludendo il parametro field_no opzionale, per ogni sottostringa verrà generato un record completo. Se diversi campi vengono caricati utilizzando Subfield(), vengono creati i prodotti cartesiani di tutte le combinazioni.
Sintassi:
SubField(text,
delimiter[, field_no ])
Tipo di dati restituiti: stringa
Argomenti:
Argomenti
Argomento
Descrizione
text
La stringa originale. Può trattarsi di un testo codificato in forma rigida, una variabile, un'espansione del segno del dollaro o un'altra espressione.
delimiter
Un carattere all'interno del text di input che divide la stringa in parti del componente.
field_no
Il terzo argomento opzionale è un numero intero che specifica la sottostringa della stringa principale text che verrà restituita. Utilizzare il valore 1 per restituire la prima sottostringa, 2 per restituire la seconda sottostringa e così via.
Se field_no è un valore positivo, le sottostringhe vengono estratte da sinistra a destra.
Se field_no è un valore negativo, le sottostringhe vengono estratte da destra a sinistra.
Nota di suggerimento È possibile utilizzare SubField() invece di utilizzare combinazioni di funzioni complesse, come ad esempio Len(), Right(), Left(), Mid() e altre funzioni delle stringhe.
Esempi: Script ed espressioni del grafico usando SubField
Esempi base
Esempio
Risultato
SubField(S, ';' ,2)
Restituisce 'cde' se S è 'abc;cde;efg'.
SubField(S, ';' ,1)
Restituisce una stringa vuota se S è una stringa vuota.
SubField(S, ';' ,1)
Restituisce una stringa vuota se S è ';'.
Si supponga di disporre di una variabile contenente il nome di percorso vMyPath,
Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;.
In un grafico testo e immagine, è possibile aggiungere una misura come: SubField(vMyPath, '\',-3), che restituisce 'Qlik', poiché si tratta della terza sottostringa a partire dall'estremità destra della variabile vMyPath.
Esempio script 1
Script di caricamento
Caricare le espressioni di script e i dati seguenti nell'editor caricamento dati.
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;
Creazione di una visualizzazione
Creare una visualizzazione tabella in un foglio Qlik Sense con Name, FirstName e SurName come dimensioni.
Risultato
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Spiegazione
La funzione SubField() estrae la prima sottostringa Name impostando l'argomento field_no su 1. Dato che il valore di field_no è positivo, viene seguito un ordine da sinistra a destra per l'estrazione della sottostringa. Una seconda chiamata funzione estrae la seconda sottostringa impostando l'argomento field_no a -1, che estrae la sottostringa seguendo un ordine da desta a sinistra.
Esempio script 2
Script di caricamento
Caricare le espressioni di script e i dati seguenti nell'editor caricamento dati.
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 '|');
Creazione di una visualizzazione
Creare una visualizzazione tabella in un foglio Qlik Sense con Instrument, Player e Project come dimensioni.
Risultato
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
Spiegazione
Questo esempio mostra come l'utilizzo di più istanze della funzione Subfield(), ciascuna delle quali non include il parametro field_no, dall'interno della stessa istruzione LOAD crei prodotti cartesiani di tutte le combinazioni. L'opzione DISTINCT viene utilizzata per evitare la creazione di record duplicati.
Hai trovato utile questa pagina?
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!