共用方式為


COMBINEVALUES

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

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

語法

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

參數

術語 定義
delimiter 串連期間要使用的分隔符。 必須是常數值。
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月