COMBINEVALUES
Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMeasureVisuaalinen laskutoimitus
Liittää kaksi or lisää tekstimerkkijonoja yhdeksi tekstimerkkijonoksi. Tämän funktion ensisijainen tarkoitus on tukea monisarakkeisia yhteyksiä DirectQuery-malleissa. Lisätietoja on kohdassa huomautukset.
Syntaksi
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parametrit
Termi | Määritelmä |
---|---|
delimiter |
Ketjutuksen aikana käytettävä erotin. Pitää olla vakio value. |
expression |
DAX-lauseke, jonka value liitetään yhdeksi tekstimerkkijonoksi. |
Palauta value
Ketjutettu merkkijono.
Huomautuksia
COMBINEVALUES funktiossa oletetaan, mutta not vahvistetaan, että kun values syöte on erilainen, tulostemerkkijonot ovat myös erilaiset. Tämän oletuksen perusteella, kun COMBINEVALUES luodaan laskettuja sarakkeita sellaisen suhteen luomiseksi, joka liittää useita sarakkeita kahdesta DirectQuery-taulukosta, kyselyn timeluodaan optimoitu liitosehto. if käyttäjät haluavat esimerkiksi luoda suhteen Table1(Column1, Column2) and Table2(Column1, Column2) välille, he voivat luoda kaksi laskettua saraketta, yhden kumpaankin taulukkoon seuraavasti:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
and
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
And luoda sitten suhteen
Table1[CalcColumn]
andTable2[CalcColumn]
välille. Toisin kuin muut DAX funktiot and-operaattoreita, jotka on käännetty kirjaimellisesti vastaaville SQL-operaattoreille and funktioille, yllä oleva suhde luo SQL-liitospredikaatin seuraavasti:(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)
Liitospredikaatti voi ehkä tuottaa paljon paremman kyselyn suorituskyvyn kuin sellainen, joka sisältää monimutkaisia SQL-operaattoreita and funktioita.
COMBINEVALUES funktio luottaa siihen, että käyttäjät valitsevat sopivan erottimen sen varmistamiseksi, että syöteyhdistelmät values tuottaa erillisiä tulostemerkkijonoja, mutta se not vahvista, että oletuksena on true. Esimerkiksi if käyttäjät valitsevat erottimeksi
"| "
, mutta taulukon 1 yhdellä rivillä onTable1[Column1] = "| "
andTable2 [Column2] = " "
, kun taas table2-taulukon yhdellä rivillä onTable2[Column1] = " "
andTable2[Column2] = "| "
, kaksi ketjutettua tulostetta ovat sama"|| "
, mikä näyttää osoittavan, että nämä kaksi riviä vastaavat toisiaan liitostoiminnossa. Molemmat rivit not liitetään yhteen, if molemmat taulukot ovat peräisin samasta DirectQuery-lähteestä, vaikka ne liitetään yhteen if molemmat taulukot tuodaan.
Esimerkki
Seuraava kyselyn DAX:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Palauttaa seuraavan yksisarakkeisen taulukon:
[Month] |
---|
Tammikuu, 2020 |
Helmikuu, 2020 |
Maaliskuu 2020 |
Huhtikuu, 2020 |
toukokuu, 2020 |
Kesäkuu, 2020 |
Heinäkuu, 2020 |
Elokuu 2020 |
Syyskuu, 2020 |
Lokakuu 2020 |
Marraskuu, 2020 |
Joulukuu 2020 |
Tammikuu, 2021 |
Tammikuu, 2021 |
Helmikuu, 2021 |
Maaliskuu 2021 |
Huhtikuu, 2021 |
toukokuu, 2021 |
Kesäkuu, 2021 |
Heinäkuu, 2021 |
Elokuu 2021 |
Syyskuu, 2021 |
Lokakuu 2021 |
Marraskuu, 2021 |
Joulukuu 2021 |