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:
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
Beispiel: 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:
Das Ergebnis dieser Skript-Funktion ist Folgendes:
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