Partager via


COMBINEVALUES

s’applique à :colonne calculéetable calculéeMeasurecalcul visuel

Joint deux chaînes de texte or plus en une seule chaîne de texte. L’objectif principal de cette fonction est de prendre en charge les relations à plusieurs colonnes dans les modèles DirectQuery. Pour plus d’informations, consultez remarques.

Syntaxe

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

Paramètres

Terme Définition
delimiter Séparateur à utiliser pendant la concaténation. Doit être une constante value.
expression Expression DAX dont les value seront jointes à une seule chaîne de texte.

Retourner value

Chaîne concaténée.

Remarques

  • La fonction COMBINEVALUES suppose, mais n'not valider, que lorsque la values d’entrée est différente, les chaînes de sortie sont également différentes. En fonction de cette hypothèse, lorsque COMBINEVALUES est utilisé pour créer des colonnes calculées afin de créer une relation qui joint plusieurs colonnes à partir de deux tables DirectQuery, une condition de jointure optimisée est générée à la requête time. Par exemple, if utilisateurs souhaitent créer une relation entre Table1(Column1, Column2) and Table2(Column1, Column2), ils peuvent créer deux colonnes calculées, une sur chaque table, comme suit :

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

    and

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

    And ensuite créer une relation entre Table1[CalcColumn]andTable2[CalcColumn]. Contrairement aux autres fonctions DAXand, qui sont traduites littéralement en opérateurs SQL correspondants and fonctions, la relation ci-dessus génère un prédicat de jointure SQL comme suit :

    (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)
    
  • Le prédicat de jointure peut potentiellement offrir de meilleures performances de requête qu’un opérateur SQL complexe and fonctions.

  • La fonction COMBINEVALUES s’appuie sur les utilisateurs pour choisir le délimiteur approprié pour s’assurer que les combinaisons uniques d’entrée values produisent des chaînes de sortie distinctes, mais il not valider que l’hypothèse est true. Par exemple, if utilisateurs choisissent "| " comme délimiteur, mais une ligne de Table1 a Table1[Column1] = "| "andTable2 [Column2] = " ", tandis qu’une ligne de Table2 a Table2[Column1] = " "andTable2[Column2] = "| ", les deux sorties concaténées sont les mêmes "|| ", qui semblent indiquer que les deux lignes sont une correspondance dans l’opération de jointure. Les deux lignes sont not jointes if les deux tables proviennent de la même source DirectQuery, même si elles sont jointes if les deux tables sont importées.

Exemple

Requête DAX suivante :

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

Retourne la table de colonnes unique suivante :

[Month]
Janvier 2020
Février 2020
Mars 2020
Avril 2020
Mai 2020
Juin 2020
Juillet 2020
Août 2020
Septembre 2020
Octobre 2020
Novembre 2020
Décembre 2020
Janvier 2021
Janvier 2021
Février 2021
Mars 2021
Avril 2021
Mai 2021
Juin 2021
Juillet 2021
Août 2021
Septembre 2021
Octobre 2021
Novembre 2021
Décembre 2021