COMBINEVALUES

適用於:匯出數據行匯出數據表量值視覺計算

將兩個或多個文字字串聯結成一個文字字串。 此函式的主要目的是要支援 DirectQuery 模型中的多重資料行關聯性。 如需詳細資料,請參閱備註

語法

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

參數

詞彙 定義
分隔符號 要在串連期間使用的分隔符號。 必須是常數值。
expression DAX 運算式,其值會聯結成單一文字字串。

傳回值

串連的字串。

備註

  • COMBINEVALUES 函式會假設 (但不會驗證) 當輸入值不同時,輸出字串也會不同。 根據這項假設,當 COMBINEVALUES 用來建立計算結果欄,以便建立聯結兩個 DirectQuery 資料表的多個資料行關聯性時,即會在查詢時產生最佳化的聯結條件。 例如,如果使用者希望建立 Table1(Column1, Column2) 和 Table2(Column1, Column2) 之間的關聯性,則可以在每個資料表上建立兩個計算結果欄,如下所示:

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

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

    然後建立 Table1[CalcColumn]Table2[CalcColumn] 之間的關聯性。 上述關聯性與其他 DAX 函式和運算子 (會以字面方式轉譯成對應的 SQL 運算子和函式) 不同之處是會產生 SQL 聯結述詞,如下所示:

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

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • 比起牽涉複雜 SQL 運算子和函式的查詢,聯結述詞可提供更佳的查詢效能。

  • COMBINEVALUES 函式需要使用者選擇適當的分隔符號,才能確保輸入值的唯一組合會產生相異輸出字串,但不會驗證假設是否正確。 例如,如果使用者選擇 "| " 作為分隔符號,但是 Table1 中的其中一個資料列具有 Table1[Column1] = "| "Table2 [Column2] = " ",而 Table2 中的其中一個資料列具有 Table2[Column1] = " "Table2[Column2] = "| ",則兩個串連的輸出將會是相同的 "|| ",其似乎表示兩個資料列在聯結作業中相符。 如果這兩個資料表都來自相同的 DirectQuery 來源,則這兩個資料列不會聯結在一起;但如果匯入這兩個資料表,則這兩個資料列會聯結在一起。

範例

下列 DAX 查詢:

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

傳回下列單一資料行資料表:

[Month]
2020 年 1 月
2020 年 2 月
2020 年 3 月
2020 年 4 月
2020 年 5 月
2020 年 6 月
2020 年 7 月
2020 年 8 月
2020 年 9 月
2020 年 10 月
2020 年 11 月
2020 年 12 月
2021 年 1 月
2021 年 1 月
2021 年 2 月
2021 年 3 月
2021 年 4 月
2021 年 5 月
2021 年 6 月
2021 年 7 月
2021 年 8 月
2021 年 9 月
2021 年 10 月
2021 年 11 月
2021 年 12 月