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 月 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應