COMBINEVALUES
Koskee seuraavia:Laskettu sarake
Laskettu taulukko
Mittayksikkö
Visuaalinen laskenta -
Yhdistää vähintään kaksi tekstimerkkijonoa 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 vakioarvo. |
expression |
DAX lauseke, jonka arvo liitetään yksittäiseen tekstimerkkijonoon. |
Palautusarvo
Ketjutettu merkkijono.
Huomautuksia
COMBINEVALUES funktiossa oletetaan, mutta ei vahvisteta, että kun syötearvot ovat erilaiset, 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 aikana luodaan optimoitu liitosehto. Jos käyttäjät haluavat esimerkiksi luoda suhteen kohteiden Table1(Column1, Column2) ja Table2(Column1, Column2) välille, he voivat luoda kaksi laskettua saraketta, yhden kumpaankin taulukkoon seuraavasti:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
ja
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
Sitten voit luoda suhteen
Table1[CalcColumn]
jaTable2[CalcColumn]
välille. Toisin kuin muut DAX funktiot ja operaattorit, jotka on käännetty kirjaimellisesti vastaaviin SQL-operaattoreihin ja -funktioihin, yllä oleva suhde luo SQL-liitospredikaatin seuraavasti:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
ja
(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 ja -funktioita.
COMBINEVALUES funktio luottaa siihen, että käyttäjät valitsevat sopivan erottimen sen varmistamiseksi, että syötearvojen yksilölliset yhdistelmät tuottavat erillisiä tulostemerkkijonoja, mutta se ei vahvista oletusta todeksi. Jos käyttäjät esimerkiksi valitsevat erottimeksi
"| "
, mutta taulukon 1 yhdellä rivillä onTable1[Column1] = "| "
jaTable2 [Column2] = " "
, kun taas table2-taulukon yhdellä rivillä onTable2[Column1] = " "
jaTable2[Column2] = "| "
, kaksi ketjutettua tulostetta ovat samat"|| "
, mikä näyttää osoittavan, että nämä kaksi riviä vastaavat toisiaan liittymistoiminnossa. Kahta riviä ei liitetään yhteen, jos molemmat taulukot ovat peräisin samasta DirectQuery-lähteestä, mutta ne liitetään yhteen, jos molemmat taulukot tuodaan.
Esimerkki
Seuraava kyselyn DAX:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Palauttaa seuraavan yksisarakkeisen taulukon:
[Kuukausi] |
---|
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 |