COMBINEVALUES
Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung
Verknüpft zwei oder mehr Textzeichenfolgen mit einer Textzeichenfolge. Der Hauptzweck dieser Funktion besteht darin, mehrspaltige Beziehungen in DirectQuery-Modellen zu unterstützen. Ausführliche Informationen finden Sie in Anmerkungen.
Syntax
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parameter
Ausdruck | Definition |
---|---|
delimiter |
Ein Trennzeichen, das während der Verkettung verwendet werden soll. Muss ein Konstantenwert sein. |
expression |
Ein DAX Ausdruck, dessen Wert in eine einzelne Textzeichenfolge eingebunden wird. |
Rückgabewert
Eine verkettete Zeichenfolge.
Bemerkungen
Bei der COMBINEVALUES-Funktion wird davon ausgegangen, aber nicht überprüft, dass bei unterschiedlichen Eingabewerten auch die Ausgabezeichenfolgen unterschiedlich sind. Basierend auf dieser Annahme wird, wenn COMBINEVALUES zum Erstellen berechneter Spalten verwendet wird, um eine Beziehung zu erstellen, die mehrere Spalten aus zwei DirectQuery-Tabellen verknüpft, eine optimierte Verknüpfungsbedingung zur Abfragezeit generiert. Wenn Benutzer beispielsweise eine Beziehung zwischen Table1(Column1, Column2) und Table2(Column1, Column2) erstellen möchten, können sie zwei berechnete Spalten erstellen:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
und
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
Erstellen Sie dann eine Beziehung zwischen
Table1[CalcColumn]
undTable2[CalcColumn]
. Im Gegensatz zu anderen DAX Funktionen und Operatoren, die buchstäblich in die entsprechenden SQL-Operatoren und -Funktionen übersetzt werden, generiert die obige Beziehung ein SQL-Join-Prädikat als:(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 Join-Prädikat kann potenziell eine wesentlich bessere Abfrageleistung bieten als eins, das komplexe SQL-Operatoren und -Funktionen umfasst.
Die COMBINEVALUES-Funktion basiert auf Benutzern, um das entsprechende Trennzeichen auszuwählen, um sicherzustellen, dass eindeutige Kombinationen von Eingabewerten unterschiedliche Ausgabezeichenfolgen erzeugen, aber nicht überprüfen, ob die Annahme zutrifft. Wenn Benutzer z. B.
"| "
als Trennzeichen auswählen, aber eine Zeile in Tabelle1Table1[Column1] = "| "
undTable2 [Column2] = " "
hat, während eine Zeile in Tabelle2Table2[Column1] = " "
undTable2[Column2] = "| "
hat, sind die beiden verketteten Ausgaben die gleichen"|| "
, was darauf hindeutet, dass die beiden Zeilen eine Übereinstimmung im Verknüpfungsvorgang sind. Die beiden Zeilen werden nicht miteinander verknüpft, wenn beide Tabellen aus derselben DirectQuery-Quelle stammen, obwohl sie miteinander verknüpft sind, wenn beide Tabellen importiert werden.
Beispiel
Die folgende DAX Abfrage:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Gibt die folgende Einzelspaltentabelle zurück:
[Monat] |
---|
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 |
Februar 2021 |
März 2021 |
April 2021 |
Mai 2021 |
Juni 2021 |
Juli 2021 |
August 2021 |
September 2021 |
Oktober 2021 |
November 2021 |
Dezember 2021 |