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