Del via


COMBINEVALUES

Gjelder beregnet beregning av beregnet tabellfor beregnet kolonne

Slår sammen to eller flere tekststrenger i én tekststreng. Hovedformålet med denne funksjonen er å støtte flerkolonnerelasjoner i DirectQuery-modeller. Se Merknader for mer informasjon.

Syntaks

COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)

Parametere

Term Definisjon
Skilletegn Et skilletegn som skal brukes under sammenkobling. Må være en konstant verdi.
Uttrykk Et DAX-uttrykk der verdien vil bli koblet til én enkelt tekststreng.

Returverdi

En sammenføyd streng.

Merknader

  • COMBINEVALUES-funksjonen 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])
    

    Og opprett deretter en relasjon mellom Table1[CalcColumn] og Table2[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.

  • COMBINEVALUES-funksjonen 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 har Table1[Column1] = "| " og Table2 [Column2] = " ", mens én rad i Tabell2 har Table2[Column1] = " " og Table2[Column2] = "| ", vil de to sammenkoblede utdataene være de samme "|| ", noe som ser ut til å indikere at de to radene samsvarer 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