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
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.
Esempio: principi fondamentali della funzione SubField
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che viene caricato in una tabella dati chiamata Example.
Un campo della tabella dati denominata Name.
Script di caricamento
Example:
Load * inline [
Name
Dave Owen
Joe Tem
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:
Name
Creare le seguenti dimensioni calcolate:
=SubField(Name, ' ',1), per estrarre la prima sottostringa che appare prima del delimitatore spaziale ' '.
=SubField(Name, ' ',-1), per estrarre la prima sottostringa che appare prima del delimitatore spaziale ' ', iniziando dalla destra della stringa.
Results table
Name
SubField(Name, ' ',1)
SubField(Name, ' ',-1)
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
La funzione SubField() estrae la prima sottostringa Name impostando l'argomento field_no su 1. Dato che il valore di field_no è positivo, per l'estrazione della sottostringa viene seguito l'ordine da sinistra a destra. Una seconda chiamata di funzione estrae la seconda sottostringa impostando l'argomento field_no su -1, in modo da estrarre la sottostringa seguendo un ordine da desta a sinistra.
Script di caricamento
Aprire Editor caricamento dati, quindi aggiungere il seguente script di caricamento in una nuova scheda.
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;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
Name
FirstName
SurName
Results table
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, per l'estrazione della sottostringa viene seguito l'ordine da sinistra a destra. Una seconda chiamata di funzione estrae la seconda sottostringa impostando l'argomento field_no su -1, in modo da estrarre la sottostringa seguendo un ordine da desta a sinistra.
Esempio: scenario per l'applicazione della funzione SubField
Panoramica
Un set di dati di prodotti contiene una tabella con i prodotti. Ogni prodotto nella tabella ha un campo con il tag che identifica l'area del prodotto. I prodotti possono avere più valori per il campo del tag. Ad esempio, il widget A ha i seguenti tag: Elettronica, Gadget, Casa. I valori dei tag sono separati da una barra verticale (|) come delimitatore. In questo esempio si mostra come estrarre i valori di tag specifici utilizzando la funzione SubField.
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati che viene caricato in una tabella dati chiamata Example.
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
ProductID
ProductName
Tags
Creare le seguenti dimensioni calcolate:
=SubField(Tags, '|',1), per estrarre il primo elemento nel campo Tags.
=SubField(Tags, '|',2), per estrarre il secondo elemento nel campo Tags.
=SubField(Tags, '|',3), per estrarre il terzo elemento nel campo Tags.
Results table
ProductID
ProductName
Tags
SubField(Tags, '|', 1)
SubField(Tags, '|', 2)
SubField(Tags, '|', 3)
1
Widget A
Electronics|Gadgets|Home
Electronics
Gadgets
Home
2
Widget B
Electronics|Accessories
Electronics
Accessories
-
3
Widget C
Furniture|Home
Furniture
Home
-
4
Widget D
Gadgets|Accessories
Gadgets
Accessories
-
L'output delle funzioni di SubField ha restituito con successo i tag dalle posizioni rilevanti nella stringa originale di Tags.
Script di caricamento
Aprire Editor caricamento dati, quindi aggiungere il seguente script di caricamento in una nuova scheda.
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 '|');
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
Instrument
Player
Project
Results table
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 senza il parametro field_no, crea prodotti cartesiani di tutte le combinazioni dalla stessa istruzione LOAD. 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!