Vai al contenuto principale

Esempi di funzioni Concat

La funzione CONCAT() non deve essere confusa con la parola chiave CONCATENATE che viene utilizzata negli script.

Nella sua forma più semplice la funzione Concat() viene utilizzata per collegare/unire valori/parole/selezioni in un'unica stringa. Tuttavia, è una funzione che consente di risolvere diversi problemi grazie al suo utilizzo versatile. Tutti gli esempi si basano sulla tabella seguente:

Example string table data
Dati tabella stringhe di esempio
Table MyColumn Date Value
Data JKL 01/01/2012 11
Data1 WVX 01/02/2012 13
Data GHI 01/03/2012 13
Data ABC 01/04/2012 15
Data1 STU 01/05/2012 18
Data1 PQR 01/06/2012 10
Data1 MNO 01/07/2012 25
Data DEF 01/08/2012 11

Concatenazione di una stringa semplice

Come detto in precedenza, la funzione concat consente di unire un elenco di valori. Questi valori possono essere codificati o attivati mediante selezioni/dati.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Questa semplice istruzione concat esegue l'unione di tutti i possibili valori della colonna MyColumn. È possibile aggiungere la parola chiave DISTINCT. In questo modo ogni valore verrà visualizzato solo una volta nella stringa:

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

Quando si usa un'istruzione concat semplice, è sempre possibile aggiungere un sistema di ordinamento alla funzione in modo da ordinare i valori della stringa in base a una colonna selezionata. Nell'esempio seguente, la colonna relativa alla data è stata aggiunta per ordinare i valori.

=CONCAT(MyColumn, ',', Date)

Risultato: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

Concat() all'interno di un'espressione/istruzione Set

Example: Passaggio di valori dinamici multipli a un'espressione set analysis

In alcune occasioni, potrebbe essere necessario trasmettere una selezione dinamica di valori a un'istruzione set. Per eseguire questo passaggio, occorre aggiungere alcune virgolette singole alla stringa in modo che la funzione CONCAT() restituisca ad esempio 'JKL','VWX'. Tuttavia, non è possibile inserire le virgolette singole così come sono poiché in questo caso verrebbero interpretate al momento della valutazione di Concat invece della valutazione dell'espressione set. Utilizzare invece la funzione Chr():

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

A questo punto, sarà possibile trasmettere questa istruzione concat all'interno di un'espressione:

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

Nella maggior parte delle istanze questo metodo viene utilizzato in presenza di isole di dati. Consente di trasmettere valori a un'espressione che non incideranno su nessuna parte del modello dati dato che non è stato eseguito il collegamento della tabella dell'isola di dati.

Concat() nello script

La funzione Concat può essere utilizzata anche nello script al fine di convertire più righe in un unico valore a colonna singola, proprio come qualsiasi altra aggregazione.

Tenendo presente i dati sorgente utilizzati in precedenza, il risultato dello script CONCAT sarà il seguente:

ConcatExample:
Load Table,
Concat(MyColumn,',') as CombinedData
Resident Temp
Group By Table;

Di seguito è riportato il risultato di questa funzione di script:

Output di esempio in formato tabella
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

Utilizzo di Rank() per condizionare Concat()

Quando si inizia a utilizzare un'altra funzione unitamente a concat(), i risultati ottenuti saranno più efficaci. In questo esempio, Rank() è stato utilizzato per raccogliere i tre esecutori principali (in base al Valore) e unirli.

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

Risultato: ABC,MNO,STU

Join the Analytics Modernization Program

Modernize by leveraging your QlikView investment to begin using Qlik Sense on the Cloud.

Want to know more?
Remove banner from view