Udostępnij za pośrednictwem


COMBINEVALUES

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

Łączy dwa or więcej ciągów tekstowych w jeden ciąg tekstowy. Podstawową funkcją jest obsługa relacji wielokolumnach w modelach DirectQuery. Aby uzyskać szczegółowe informacje, zobacz uwagi.

Składnia

COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)

Parametry

Termin Definicja
delimiter Separator do użycia podczas łączenia. Musi być stałą value.
expression Wyrażenie DAX, którego value zostanie połączone w jeden ciąg tekstowy.

Zwracanie value

Połączony ciąg.

Uwagi

  • Funkcja COMBINEVALUES zakłada, ale sprawdza, czy not zweryfikować, że gdy values wejściowe są różne, ciągi wyjściowe są również różne. Na podstawie tego założenia, gdy COMBINEVALUES jest używana do tworzenia kolumn obliczeniowych w celu utworzenia relacji łączącej wiele kolumn z dwóch tabel Trybu DirectQuery, w zapytaniu timejest generowany zoptymalizowany warunek sprzężenia. Na przykład if użytkownicy chcą utworzyć relację między tabelą Table1(Column1, Column2) and Table2(Column1, Column2), mogą utworzyć dwie kolumny obliczeniowe, jedną na każdej tabeli jako:

    Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
    

    and

    Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
    

    And następnie utworzyć relację między Table1[CalcColumn]andTable2[CalcColumn]. W przeciwieństwie do innych funkcji DAXand operatorów, które są tłumaczone dosłownie na odpowiednie operatory SQL and funkcji, powyższa relacja generuje predykat sprzężenia SQL jako:

    (Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
    

    and

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • Predykat sprzężenia może potencjalnie zapewnić znacznie lepszą wydajność zapytań niż taki, który obejmuje złożone operatory SQL and funkcji.

  • Funkcja COMBINEVALUES opiera się na użytkownikach, aby wybrać odpowiedni ogranicznik, aby upewnić się, że unikatowe kombinacje danych wejściowych values generują różne ciągi wyjściowe, ale not sprawdzić, czy założenie jest true. Na przykład if użytkownicy wybierają "| " jako ogranicznik, ale jeden wiersz w tabeli Table1 ma Table1[Column1] = "| "andTable2 [Column2] = " ", podczas gdy jeden wiersz w tabeli Table2 ma Table2[Column1] = " "andTable2[Column2] = "| ", dwa połączone dane wyjściowe będą takie same "|| ", co wydaje się wskazywać, że dwa wiersze są zgodne w operacji sprzężenia. Dwa wiersze są not połączone ze sobą, if obie tabele pochodzą z tego samego źródła zapytania bezpośredniego, chociaż są one połączone if obie tabele są importowane.

Przykład

Następujące zapytanie DAX:

EVALUATE
DISTINCT (
    SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)

Zwraca następującą tabelę z jedną kolumną:

[Month]
Styczeń 2020 r.
Luty 2020 r.
Marzec 2020 r.
Kwiecień 2020 r.
Maj 2020 r.
Czerwiec 2020 r.
Lipiec 2020 r.
Sierpień 2020 r.
Wrzesień 2020 r.
Październik 2020 r.
Listopad 2020 r.
Grudzień 2020 r.
Styczeń 2021 r.
Styczeń 2021 r.
Luty 2021 r.
Marzec 2021 r.
Kwiecień 2021 r.
Maj 2021 r.
Czerwiec 2021 r.
Lipiec 2021 r.
Sierpień 2021 r.
Wrzesień 2021 r.
Październik 2021 r.
Listopad 2021 r.
Grudzień 2021 r.