Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
gjelder:
beregnet kolonne
beregnet tabell
måle
visualobjektberegning
Slår sammen to eller 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 verdi. |
expression |
Et DAX uttrykk der verdien vil bli koblet til én enkelt tekststreng. |
Returverdi
En sammenføyd streng.
Merknader
Funksjonen COMBINEVALUES forutsetter, men validerer ikke, at når inndataverdiene er forskjellige, er utdatastrengene også forskjellige. Basert på denne antagelsen, når COMBINEVALUES brukes til å opprette beregnede kolonner for å bygge en relasjon som føyer sammen flere kolonner fra to DirectQuery-tabeller, genereres en optimalisert sammenføyningsbetingelse ved spørringstidspunktet. Hvis brukere for eksempel vil opprette en relasjon mellom Tabell1(Kolonne1, Kolonne2) og Tabell2(Kolonne1, Kolonne2), kan de opprette to beregnede kolonner, én i hver tabell, som:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])og
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])Deretter oppretter du en relasjon mellom
Table1[CalcColumn]ogTable2[CalcColumn]. I motsetning til andre DAX funksjoner og operatorer, som oversettes bokstavelig talt til tilsvarende SQL-operatorer og -funksjoner, genererer relasjonen ovenfor et SQL-sammenføyningspredikat som:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)og
(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 og funksjoner.
Funksjonen COMBINEVALUES er avhengig av at brukerne velger riktig skilletegn for å sikre at unike kombinasjoner av inndataverdier produserer distinkte utdatastrenger, men det validerer ikke at antagelsen er sann. Hvis brukere for eksempel velger
"| "som skilletegn, men én rad i Tabell1 harTable1[Column1] = "| "ogTable2 [Column2] = " ", mens én rad i Tabell2 harTable2[Column1] = " "ogTable2[Column2] = "| ", vil de to sammenkoblede utdataene være de samme"|| ", som ser ut til å indikere at de to radene er et samsvar i sammenføyningsoperasjonen. De to radene er ikke sammenføyd hvis begge tabellene er fra samme DirectQuery-kilde, selv om de er koblet sammen hvis begge tabellene importeres.
Eksempel
Følgende DAX spørring:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Returnerer følgende tabell med én kolonne:
| [Måned] |
|---|
| 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 |