Freigeben über


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] und Table2[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 Tabelle1 Table1[Column1] = "| " und Table2 [Column2] = " "hat, während eine Zeile in Tabelle2 Table2[Column1] = " " und Table2[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