COMBINEVALUES
Koskee: Lasketun sarakkeen lasketun taulukon mittarin visuaalinen laskutoimitus
Yhdistää vähintään kaksi tekstimerkkijonoa yhdeksi tekstimerkkijonoksi. Tämän funktion ensisijainen tarkoitus on tukea monisarakkeisia yhteyksiä DirectQuery-malleissa. Katso lisätietoja Huomautukset-kohdasta .
Syntaksi
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parametrit
Termi | Määritelmä |
---|---|
Erotin | Ketjutuksen aikana käytettävä erotin. Pitää olla vakioarvo. |
lauseke | DAX-lauseke, jonka arvo liitetään yksittäiseen tekstimerkkijonoon. |
Palautusarvo
Ketjutettu merkkijono.
Huomautukset
COMBINEVALUES-funktio olettaa, mutta ei vahvista, että kun syötearvot ovat erilaiset, tulostemerkkijonot ovat myös erilaiset. Tämän oletuksen perusteella, kun COMBINEVALUES-funktion avulla 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])
Ja sitten luoda suhteen kohteiden ja
Table2[CalcColumn]
välilleTable1[CalcColumn]
. 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 kohteen , mutta Table1-taulukon yhdellä rivillä onTable1[Column1] = "| "
jaTable2 [Column2] = " "
, ja Table2-taulukon yhdellä rivillä taasTable2[Column1] = " "
jaTable2[Column2] = "| "
, kaksi ketjutettua tulostetta ovat sama"|| "
, mikä näyttää osoittavan, että nämä kaksi riviä vastaavat toisiaan liitostoiminnossa. 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 DAX-kysely:
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 |