COMBINEVALUES
gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning
Slår sammen to or flere tekststrenger i én tekststreng. Hovedformålet med denne funksjonen er å støtte flerkolonnerelasjoner i DirectQuery-modeller. Se kommentarer for mer informasjon.
Syntaks
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parametere
Vilkår | Definisjon |
---|---|
delimiter |
Et skilletegn som skal brukes under sammenkobling. Må være en konstant value. |
expression |
Et DAX uttrykk der value vil bli koblet til én enkelt tekststreng. |
Returner value
En sammenføyd streng.
Merknader
Den COMBINEVALUES funksjonen forutsetter, men validerer not, at når inndataene values er forskjellige, er utdatastrengene også forskjellige. Basert på denne antagelsen, når COMBINEVALUES brukes til å opprette beregnede kolonner for å bygge en relasjon som kobler sammen flere kolonner fra to DirectQuery-tabeller, genereres en optimalisert sammenføyningsbetingelse ved spørring time. if brukere vil for eksempel opprette en relasjon mellom Tabell1(Kolonne1, Kolonne2) and Tabell2(Kolonne1, Kolonne2), kan de opprette to beregnede kolonner, én i hver tabell, som:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
and
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
And deretter opprette en relasjon mellom
Table1[CalcColumn]
andTable2[CalcColumn]
. I motsetning til andre DAX funksjoner and operatorer, som oversettes bokstavelig talt til tilsvarende SQL-operatorer and funksjoner, genererer relasjonen ovenfor et SQL-sammenføyningspredikat som:(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)
Sammenføyningspredikatet kan potensielt gi mye bedre spørringsytelse enn en som involverer komplekse SQL-operatorer and funksjoner.
Funksjonen COMBINEVALUES er avhengig av at brukerne velger riktig skilletegn for å sikre at unike kombinasjoner av inndata values produsere distinkte utdatastrenger, men det not validere at antagelsen er true. if brukere velger for eksempel
"| "
som skilletegn, men én rad i Tabell1 harTable1[Column1] = "| "
andTable2 [Column2] = " "
, mens én rad i Tabell2 harTable2[Column1] = " "
andTable2[Column2] = "| "
, vil de to sammenkoblede utdataene være de samme"|| "
, som ser ut til å indikere at de to radene samsvarer med sammenføyningsoperasjonen. De to radene er not sammenføyd if begge tabellene er fra samme DirectQuery-kilde, selv om de er koblet sammen if begge tabellene importeres.
Eksempel
Følgende DAX spørring:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Returnerer følgende tabell med én kolonne:
[Month] |
---|
Januar 2020 |
Februar 2020 |
Mars, 2020 |
April, 2020 |
Mai 2020 |
Juni 2020 |
Juli 2020 |
August, 2020 |
September, 2020 |
Oktober 2020 |
November, 2020 |
Desember 2020 |
Januar, 2021 |
Januar, 2021 |
February, 2021 |
Mars, 2021 |
April, 2021 |
Mai 2021 |
Juni, 2021 |
Juli, 2021 |
August, 2021 |
September, 2021 |
Oktober, 2021 |
November, 2021 |
Desember 2021 |