共用方式為


COMBINEVALUES

適用於:導出數據行計算數據表Measure視覺計算

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

語法

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

參數

術語 定義
delimiter 串連期間要使用的分隔符。 必須是常數 value。
expression DAX 表示式,其 value 會聯結至單一文字字串。

傳回 value

串連字串。

言論

  • COMBINEVALUES 函式假設,但會 not 驗證輸入 values 不同時,輸出字串也不同。 根據此假設,當 COMBINEVALUES 用來建立匯出數據行,以便建立關聯性,以聯結兩個 DirectQuery 數據表中的多個數據行時,會在查詢 time產生優化聯結條件。 例如,if 使用者想要建立 Table1(Column1, Column2) and Table2(Column1, Column2) 之間的關聯性,他們可以在每個數據表上建立兩個計算結果列,例如:

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

    and

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

    And 然後建立 Table1[CalcColumn]andTable2[CalcColumn]之間的關聯性。 與其他 DAX 函式 and 運算符不同,這些運算符會以字面方式轉譯為對應的 SQL 運算子 and 函式,上述關聯性會產生 SQL 聯結述詞:

    (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)
    
  • 聯結述詞可能會提供比涉及複雜 SQL 運算子 and 函式的查詢效能更好的查詢效能。

  • COMBINEVALUES 函式依賴使用者選擇適當的分隔符,以確保輸入的唯一組合 values 產生不同的輸出字串,但它確實 not 驗證假設 true。 例如,if 用戶選擇 "| " 做為分隔符,但 Table1 中的一個數據列 Table1[Column1] = "| "andTable2 [Column2] = " ",而 Table2 中的一個數據列 Table2[Column1] = " "andTable2[Column2] = "| ",這兩個串連輸出會是相同的 "|| ",這似乎表示兩個數據列在聯結作業中相符。 這兩個數據列會 not 聯結在一起,if 兩個數據表都是來自相同的 DirectQuery 來源,不過它們會聯結在一起,if 匯入這兩個數據表。

下列 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月