Zdieľať cez


FUNKCIE COMBINEVALUES

Vzťahuje sa na: Vypočítaný stĺpec Vypočítaná tabuľka Výpočet mierky Vizuál

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 časti Poznámky .

Syntax

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

Parametre

Obdobie Definícia
Oddeľovač Oddeľovač, ktorý sa používa počas zreťazenia. Musí to byť konštantná hodnota.
výraz 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. Ak sa na základe tohto predpokladu použije funkcia COMBINEVALUES na vytvorenie vypočítaných stĺpcov na vytvorenie vzťahu, ktorý spája 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 položkami 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 obsahuje Table1[Column1] = "| " a Table2 [Column2] = " ", zatiaľ čo jeden riadok v tabuľke Table2 obsahuje Table2[Column1] = " " a Table2[Column2] = "| ", dva zreťazené výstupy budú rovnaké "|| ", čo by naznačovalo, že tieto dva riadky predstavujú v operácii spojenia zhodu. 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 dotaz jazyka DAX:

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