事件
3月31日 下午11時 - 4月2日 下午11時
最終Microsoft Fabric、Power BI、SQL 和 AI 社群主導的活動。 2025 年 3 月 31 日至 4 月 2 日。
立即註冊將兩個或多個文字字串聯結成一個文字字串。 此函式的主要目的是要支援 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 月 |
事件
3月31日 下午11時 - 4月2日 下午11時
最終Microsoft Fabric、Power BI、SQL 和 AI 社群主導的活動。 2025 年 3 月 31 日至 4 月 2 日。
立即註冊