COMBINEVALUES
Verbindet zwei oder mehr Textzeichenfolgen zu einer einzigen Textzeichenfolge. Hauptzweck dieser Funktion ist die Unterstützung mehrspaltiger Beziehungen in DirectQuery-Modellen. Weitere Informationen finden Sie im Abschnitt Hinweise.
Syntax
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parameter
Begriff | Definition |
---|---|
Trennzeichen | Ein Trennzeichen zur Verwendung bei der Verkettung. Es muss sich um einen konstanten Wert handeln. |
expression | Ein DAX-Ausdruck, dessen Wert in einer einzigen Textzeichenfolge zusammengeführt wird. |
Rückgabewert
Eine verkettete Zeichenfolge.
Bemerkungen
Die COMBINEVALUES-Funktion geht davon aus – überprüft jedoch nicht –, dass bei unterschiedlichen Eingabewerten auch die Ausgabezeichenfolgen unterschiedlich sind. Basierend auf dieser Annahme wird bei Verwendung von COMBINEVALUES zum Erstellen berechneter Spalten für die Einrichtung einer Beziehung, die mehrere Spalten aus zwei DirectQuery-Tabellen verbindet, zur Abfragezeit eine optimierte Verknüpfungsbedingung erzeugt. Wenn Benutzer beispielsweise eine Beziehung zwischen „Tabelle1(Spalte1, Spalte2)“ und „Tabelle2(Spalte1, Spalte2)“ erstellen möchten, können sie zwei berechnete Spalten erstellen, eine für jede Tabelle:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
und
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
Anschließend kann eine Beziehung zwischen
Table1[CalcColumn]
undTable2[CalcColumn]
erstellt werden. Im Gegensatz zu anderen DAX-Funktionen und -Operatoren, die wörtlich in die entsprechenden SQL-Operatoren und -Funktionen übersetzt werden, erzeugt die obige Beziehung ein SQL-Joinprädikat:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
und
(Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
Das Joinprädikat kann potenziell eine deutlich bessere Abfrageleistung liefern als ein Prädikat, das komplexe SQL-Operatoren und -Funktionen umfasst.
Die COMBINEVALUES-Funktion verlässt sich darauf, dass der Benutzer das geeignete Trennzeichen auswählt, um sicherzustellen, dass eindeutige Kombinationen aus Eingabewerten unterscheidbare Ausgabezeichenfolgen liefern. Die Funktion überprüft aber nicht, ob diese Annahme zutrifft. Wenn der Benutzer beispielsweise
"| "
als Trennzeichen auswählt, aber eine Zeile in Tabelle1Table1[Column1] = "| "
undTable2 [Column2] = " "
aufweist, während eine Zeile in Tabelle2Table2[Column1] = " "
undTable2[Column2] = "| "
enthält, sind die beiden verketteten Ausgaben identisch:"|| "
. Dies scheint darauf hinzudeuten, dass die beiden Zeilen im Joinvorgang übereinstimmen. Die beiden Zeilen werden nicht miteinander verknüpft, wenn beide Tabellen aus der gleichen DirectQuery-Quelle stammen, obwohl sie beim Import beider Tabellen miteinander verknüpft werden.
Beispiel
Die folgende DAX-Abfrage:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Gibt die folgende Tabelle mit einer einzigen Spalte zurück:
[Month] |
---|
Januar 2020 |
Februar 2020 |
März 2020 |
April 2020 |
Mai 2020 |
Juni 2020 |
Juli 2020 |
August 2020 |
September 2020 |
Oktober 2020 |
November 2020 |
Dezember 2020 |
Januar 2021 |
Januar 2021 |
Januar 2021 |
März 2021 |
April 2021 |
Mai 2021 |
Juni 2021 |
Juli 2021 |
August 2021 |
September 2021 |
Oktober 2021 |
November 2021 |
Dezember 2021 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für