Zdieľať cez


COMBINEVALUES

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuálového výpočtu

Spojí dva alebo viacero textových reťazcov do jedného. Hlavným účelom tejto funkcie je podpora vzťahov medzi viacerými stĺpcami v modeloch DirectQuery. Podrobnosti nájdete v poznámkach.

Syntax

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

Parametre

Termín Definícia
delimiter Oddeľovač, ktorý sa používa počas zreťazenia. Musí to byť konštantná hodnota.
expression Výraz DAX, ktorého hodnota sa spojí do jedného textového reťazca.

Vrátená hodnota

Zreťazený reťazec.

Poznámky

  • Funkcia COMBINEVALUES predpokladá, že keď sú vstupné hodnoty odlišné, odlišné sú aj výstupné reťazce, no neoveruje overenie. Na základe tohto predpokladu, keď sa COMBINEVALUES použije na vytvorenie vypočítaných stĺpcov na vytvorenie vzťahu, ktorý spojí viacero stĺpcov z dvoch tabuliek DirectQuery, v čase dotazu sa vygeneruje optimalizovaná podmienka spojenia. Ak napríklad chcú používatelia vytvoriť vzťah medzi tabuľkami Table1(Column1, Column2) a Table2(Column1, Column2), môžu vytvoriť dva vypočítané stĺpce, po jednom na každú tabuľku, takto:

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

    a

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

    A potom vytvorte vzťah medzi Table1[CalcColumn] a Table2[CalcColumn]. Na rozdiel od iných funkcií a operátorov DAX, ktoré sa doslovne prekladajú do príslušných operátorov a funkcií SQL, vyššie uvedený vzťah vygeneruje predikát spojenia SQL ako:

    (Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
    

    a

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • Predikát spojenia môže potenciálne poskytovať oveľa vyšší výkon dotazu ako ten, ktorý zahŕňa zložité operátory a funkcie SQL.

  • Funkcia COMBINEVALUES sa spolieha na to, že používatelia zvolia vhodný oddeľovač, ktorý zabezpečí, aby jedinečné kombinácie vstupných hodnôt vytvárali odlišné výstupné reťazce, no neoveruje, či je tento predpoklad pravdivý. Ak napríklad používatelia zvolia ako oddeľovač "| ", ale jeden riadok v tabuľke Table1 Table1[Column1] = "| " a Table2 [Column2] = " ", zatiaľ čo jeden riadok v tabuľke Table2 má Table2[Column1] = " " a Table2[Column2] = "| ", dva zreťazené výstupy budú rovnakými "|| ", čo naznačuje, že tieto dva riadky sa v operácii spojenia zhodujú. Tieto dva riadky sa spoja, ak obe tabuľky pochádzajú z rovnakého zdroja DirectQuery, ale spoja sa, ak sú obe tabuľky importované.

Príklad

Nasledujúci DAX dotaz:

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

Vráti nasledujúcu tabuľku s jedným stĺpcom:

[Mesiac]
Január, 2020
Február 2020
Marec, 2020
Apríl, 2020
Máj 2020
Jún, 2020
Júl 2020
August 2020
September 2020
Október 2020
November 2020
December, 2020
Január, 2021
Január, 2021
Február 2021
Marec, 2021
Apríl, 2021
Máj 2021
Jún, 2021
Júl 2021
August 2021
September, 2021
Október 2021
November 2021
December, 2021