Ler em inglês

Compartilhar via


COMBINEVALUES

aplica-se a:coluna calculadatabela calculadaMeasurecálculo visual

Une duas or mais cadeias de texto em uma cadeia de caracteres de texto. A principal finalidade dessa função é dar suporte a relações de várias colunas em modelos DirectQuery. Consulte comentários para obter detalhes.

Sintaxe

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

Parâmetros

Prazo Definição
delimiter Um separador a ser usado durante a concatenação. Deve ser uma constante value.
expression Uma expressão DAX cuja value será unida em uma única cadeia de caracteres de texto.

Retornar value

Uma cadeia de caracteres concatenada.

Observações

  • A função COMBINEVALUES pressupõe, mas not valida, que quando os values de entrada são diferentes, as cadeias de caracteres de saída também são diferentes. Com base nessa suposição, quando COMBINEVALUES é usado para criar colunas calculadas a fim de criar uma relação que une várias colunas de duas tabelas DirectQuery, uma condição de junção otimizada é gerada na consulta time. Por exemplo, if usuários desejam criar uma relação entre Table1(Column1, Column2) and Table2(Column1, Column2), eles podem criar duas colunas calculadas, uma em cada tabela, como:

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

    and

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

    And criar uma relação entre Table1[CalcColumn]andTable2[CalcColumn]. Ao contrário de outras funções DAXand operadores, que são traduzidas literalmente para os operadores SQL correspondentes and funções, a relação acima gera um predicado de junção sql como:

    (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)
    
  • O predicado de junção pode potencialmente oferecer um desempenho de consulta muito melhor do que um que envolve operadores SQL complexos and funções.

  • A função COMBINEVALUES conta com os usuários para escolher o delimitador apropriado para garantir que combinações exclusivas de entrada values produzam cadeias de caracteres de saída distintas, mas not validar que a suposição é true. Por exemplo, if usuários escolhem "| " como delimitador, mas uma linha no Table1 tem Table1[Column1] = "| "andTable2 [Column2] = " ", enquanto uma linha na Tabela2 tem Table2[Column1] = " "andTable2[Column2] = "| ", as duas saídas concatenadas serão as mesmas "|| ", o que parece indicar que as duas linhas são uma correspondência na operação de junção. As duas linhas são not unidas if ambas as tabelas são da mesma fonte DirectQuery, embora estejam unidas if ambas as tabelas sejam importadas.

Exemplo

A seguinte consulta DAX:

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

Retorna a tabela de coluna única a seguir:

[Month]
Janeiro de 2020
Fevereiro de 2020
Março de 2020
Abril de 2020
Maio de 2020
Junho de 2020
Julho de 2020
Agosto de 2020
Setembro de 2020
Outubro de 2020
Novembro de 2020
Dezembro de 2020
Janeiro de 2021
Janeiro de 2021
Fevereiro de 2021
Março de 2021
Abril de 2021
Maio de 2021
Junho de 2021
Julho de 2021
Agosto de 2021
Setembro de 2021
Outubro de 2021
Novembro de 2021
Dezembro de 2021