COMBINEVALUES
將兩個 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月 |