Zu Hauptinhalt springen

Beispiele: Concat-Funktionen

Die CONCAT()-Funktion sollte nicht mit dem Skript-Befehl CONCATENATE verwechselt werden.

In der einfachsten Form wird Concat() dazu verwendet, Werte/Worte/Auswahlen in einem String zu verketten / zu verbinden. Sie kann jedoch auch auf eine Reihe von anderen Arten verwendet werden, um verschiedene Probleme zu lösen. Alle Beispiele basieren auf der folgenden Tabelle:

Example string table data
Beispiel für Zeichenfolgen-Tabellendaten
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

Einfache String-Verkettung

Wie bereits zuvor erwähnt, können Sie mit der concat-Funktion eine Werteliste verketten. Diese Werte können fest programmiert oder auswahl-/datenbasiert sein.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Dieser einfache concat-Befehl würde alle möglichen Werte der Spalte MeineSpalte verketten. Möglicherweise möchten Sie den DISTINCT-Befehl hinzufügen. Damit wird sichergestellt, dass jeder Wert nur einmal im String angezeigt wird:

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

Wenn Sie einen einfachen concat-Befehl verwenden, können Sie eine Sortierung zur Funktion hinzufügen, um die Stringwerte nach der Spalte Ihrer Wahl zu sortieren. Im Beispiel unten wird die Datumsspalte zur Sortierung der Werte hinzugefügt.

=CONCAT(MyColumn, ',', Date)

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

Concat() innerhalb einer Formel/eines Set-Befehls

Example: Mehrere dynamische Werte an eine Formel zur Aggregierung mit Auswahlformeln weitergeben.

Es kann vorkommen, dass Sie eine dynamische Auswahl von Werten an einen Set-Befehl weitergeben möchten. Dazu müssen Sie einige einfache Anführungszeichen zum String hinzufügen, so dass die CONCAT()-Funktion z. B. 'JKL', 'VWX' ausgibt. Sie können aber die einfachen Anführungszeichen nicht so verwenden, da diese sonst interpretiert würden, wenn die Concat ausgewertet wird, anstatt dann, wenn die Set-Formel ausgewertet wird. Verwenden Sie stattdessen die Chr()-Funktion:

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

Sie können diesen concat-Befehl dann in eine Formel einfügen:

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

In den meisten Fällen kommt diese Technik zum Einsatz, wo Dateninseln vorhanden sind. Damit können Werte in eine Formel eingefügt werden, die keine Auswirkung auf irgendeinen Teil des Datenmodells haben, da die Dateninsel-Tabelle nicht hinzugefügt wird.

Concat() im Skript

Concat kann auch im Skript verwendet werden, um mehrere Zeilen in einen einzigen Spaltenwert umzuwandeln, so wie jede andere Aggregierung.

Wenn Sie an die zuvor verwendeten Quelldaten denken, dann ist das Ergebnis des CONCAT-Skripts Folgendes:

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

Das Ergebnis dieser Skript-Funktion ist Folgendes:

Beispielausgabe in Tabellenform
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

Mit Rank() Einfluss auf Concat() nehmen

Wenn Sie sonstige Funktionen in Verbindung mit concat() verwenden möchten, dann können Sie clevere Ergebnisse erzielen. In diesem Beispiel wurde Rank() verwendet, um die drei Bestplatzierten zu nehmen (auf Basis des Wertes) und zu verketten.

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

Ergebnis: 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