Del via


COMBINEVALUES

gælder for:beregnet kolonneberegnet tabelberegning af målingvisualisering

Joinforbinder to eller flere tekststrenge til én tekststreng. Det primære formål med denne funktion er at understøtte relationer med flere kolonner i DirectQuery-modeller. Se bemærkninger for at få flere oplysninger.

Syntaks

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

Parametre

Udtryk Definition
delimiter En separator, der skal bruges under sammenkædning. Skal være en konstant værdi.
expression Et DAX udtryk, hvis værdi joinforbindes til en enkelt tekststreng.

Returværdi

En sammenkædet streng.

Bemærkninger

  • Funktionen COMBINEVALUES antager, men validerer ikke, at outputstrengene også er forskellige, når inputværdierne er forskellige. Når COMBINEVALUES bruges til at oprette beregnede kolonner for at oprette en relation, der joinforbinder flere kolonner fra to DirectQuery-tabeller, oprettes der på forespørgselstidspunktet en optimeret joinforbindelsesbetingelse baseret på denne antagelse. Hvis brugerne f.eks. vil oprette en relation mellem Table1(Column1, Column2) og Table2(Column1, Column2), kan de oprette to beregnede kolonner, én i hver tabel, som:

    Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
    

    og

    Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
    

    Og opret derefter en relation mellem Table1[CalcColumn] og Table2[CalcColumn]. I modsætning til andre DAX funktioner og operatorer, som bogstaveligt talt oversættes til de tilsvarende SQL-operatorer og -funktioner, genererer ovenstående relation et PRÆdikat for SQL-joinforbindelse 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)
    
  • Prædikatet Joinforbindelse kan potentielt levere meget bedre forespørgselsydeevne end en, der omfatter komplekse SQL-operatorer og -funktioner.

  • Funktionen COMBINEVALUES er afhængig af, at brugerne vælger den relevante afgrænser for at sikre, at entydige kombinationer af inputværdier producerer særskilte outputstrenge, men den validerer ikke, at antagelsen er sand. Hvis brugerne f.eks. vælger "| " som afgrænser, men én række i Table1 har Table1[Column1] = "| " og Table2 [Column2] = " ", mens én række i Table2 har Table2[Column1] = " " og Table2[Column2] = "| ", vil de to sammenkædede output være de samme "|| ", hvilket synes at indikere, at de to rækker stemmer overens i joinhandlingen. De to rækker joinforbindes ikke, hvis begge tabeller er fra den samme DirectQuery-kilde, selvom de er joinforbundet, hvis begge tabeller importeres.

Eksempel

Følgende DAX forespørgsel:

EVALUATE
DISTINCT (
    SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)

Returnerer følgende tabel med én kolonne:

[Måned]
Januar 2020
Februar 2020
Marts 2020
April 2020
Maj 2020
Juni 2020
Juli 2020
August 2020
September, 2020
Oktober 2020
November, 2020
December 2020
Januar 2021
Januar 2021
Februar 2021
Marts 2021
April 2021
Maj 2021
Juni 2021
Juli 2021
August 2021
September, 2021
Oktober, 2021
November, 2021
December 2021