Del via


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 har Table1[Column1] = "| "andTable2 [Column2] = " ", mens én rad i Tabell2 har Table2[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