Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
Počítaný sloupec
Počítaná tabulka
míra
vizuální
Spojí dva nebo více textových řetězců do jednoho textového řetězce. Primárním účelem této funkce je podpora relací s více sloupci v modelech DirectQuery. Podrobnosti najdete v poznámkách.
Syntax
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parametry
| Semestr | Definice |
|---|---|
delimiter |
Oddělovač, který se má použít při zřetězení. Musí to být konstantní hodnota. |
expression |
Výraz DAX, jehož hodnota se spojí do jednoho textového řetězce. |
Návratová hodnota
Zřetězený řetězec.
Poznámky
Funkce COMBINEVALUES předpokládá, ale neověřuje, že pokud se vstupní hodnoty liší, výstupní řetězce se také liší. Na základě tohoto předpokladu se při použití COMBINEVALUES k vytvoření počítaných sloupců k vytvoření relace, která spojí více sloupců ze dvou tabulek DirectQuery, se vygeneruje optimalizovaná podmínka spojení v době dotazu. Pokud například uživatelé chtějí vytvořit relaci mezi tabulkou1(Sloupec1, Sloupec2) a Table2(Column1; Column2), můžou vytvořit dva počítané sloupce, jeden pro každou tabulku, jako:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])a
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])A pak vytvořte relaci mezi
Table1[CalcColumn]aTable2[CalcColumn]. Na rozdíl od jiných DAX funkcí a operátorů, které jsou přeloženy doslova na odpovídající operátory a funkce SQL, výše uvedený vztah generuje predikát spojení SQL jako:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)a
(Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)Predikát spojení může potenciálně přinést mnohem lepší výkon dotazů než ten, který zahrnuje složité operátory a funkce SQL.
Funkce COMBINEVALUES spoléhá na uživatele, aby zvolili odpovídající oddělovač, aby se zajistilo, že jedinečné kombinace vstupních hodnot vytvářejí jedinečné výstupní řetězce, ale neověřuje, že je předpoklad pravdivý. Pokud například uživatelé zvolí
"| "jako oddělovač, ale jeden řádek v tabulce1 máTable1[Column1] = "| "aTable2 [Column2] = " ", zatímco jeden řádek v tabulce2 máTable2[Column1] = " "aTable2[Column2] = "| ", dva zřetězené výstupy budou stejné"|| ", což vypadá, že dva řádky jsou v operaci spojení shody. Tyto dva řádky nejsou spojeny, pokud obě tabulky pocházejí ze stejného zdroje DirectQuery, i když jsou spojené dohromady, pokud jsou obě tabulky importovány.
Příklad
Následující dotaz DAX:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Vrátí následující tabulku s jedním sloupcem:
| [Měsíc] |
|---|
| Leden 2020 |
| Únor 2020 |
| Březen 2020 |
| Duben 2020 |
| Květen 2020 |
| Červen 2020 |
| Červenec 2020 |
| Srpen 2020 |
| Září 2020 |
| Říjen 2020 |
| Listopad 2020 |
| Prosince 2020 |
| Leden 2021 |
| Leden 2021 |
| Únor 2021 |
| Březen 2021 |
| Duben 2021 |
| Květen 2021 |
| Červen 2021 |
| Červenec 2021 |
| Srpen 2021 |
| Září 2021 |
| Říjen 2021 |
| Listopad 2021 |
| Prosince 2021 |