COMBINEVALUES
Hiermee worden twee of meer tekenreeksen samengevoegd tot één tekenreeks. Het primaire doel van deze functie is het ondersteunen van relaties met meerdere kolommen in DirectQuery-modellen. Zie Opmerkingen voor meer informatie.
Syntaxis
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parameters
Termijn | Definitie |
---|---|
scheidingsteken | Een scheidingsteken dat moet worden gebruikt tijdens samenvoeging. Moet een constante waarde zijn. |
Expressie | Een DAX-expressie waarvan de waarde wordt samengevoegd tot één tekenreeks. |
Retourwaarde
Een samengevoegde tekenreeks.
Opmerkingen
De functie COMBINEVALUES gaat ervan uit dat wanneer de invoerwaarden verschillen, de uitvoertekenreeksen ook verschillend zijn, maar niet valideert. Op basis van deze veronderstelling wordt wanneer COMBINEVALUES wordt gebruikt om berekende kolommen te maken om een relatie te maken waarmee meerdere kolommen uit twee DirectQuery-tabellen worden samengevoegd, een geoptimaliseerde joinvoorwaarde wordt gegenereerd tijdens het uitvoeren van query's. Als gebruikers bijvoorbeeld een relatie willen maken tussen Table1(Column1, Column2) en Table2(Column1, Column2), kunnen ze twee berekende kolommen maken, één voor elke tabel, zoals:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
en
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
En maak vervolgens een relatie tussen
Table1[CalcColumn]
enTable2[CalcColumn]
. In tegenstelling tot andere DAX-functies en -operators, die letterlijk worden vertaald naar de bijbehorende SQL-operators en -functies, genereert de bovenstaande relatie een SQL-joinpredicaat als:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
en
(Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
Het joinpredicaat kan mogelijk veel betere queryprestaties leveren dan een query die complexe SQL-operators en -functies omvat.
De functie COMBINEVALUES is afhankelijk van gebruikers om het juiste scheidingsteken te kiezen om ervoor te zorgen dat unieke combinaties van invoerwaarden afzonderlijke uitvoertekenreeksen produceren, maar niet valideert dat de aanname waar is. Als gebruikers bijvoorbeeld het scheidingsteken kiezen
"| "
, maar één rij in Tabel1 heeftTable1[Column1] = "| "
enTable2 [Column2] = " "
, terwijl één rij in Tabel2 heeftTable2[Column1] = " "
enTable2[Column2] = "| "
, zijn de twee samengevoegde uitvoer hetzelfde"|| "
, wat erop lijkt aan te geven dat de twee rijen een overeenkomst zijn in de joinbewerking. De twee rijen worden niet samengevoegd als beide tabellen afkomstig zijn van dezelfde DirectQuery-bron, hoewel ze worden samengevoegd als beide tabellen worden geïmporteerd.
voorbeeld
De volgende DAX-query:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Retourneert de volgende tabel met één kolom:
[Maand] |
---|
Januari 2020 |
Februari 2020 |
Maart 2020 |
April 2020 |
Mei 2020 |
Juni 2020 |
Juli 2020 |
Augustus 2020 |
September, 2020 |
Oktober 2020 |
November 2020 |
December 2020 |
Januari 2021 |
Januari 2021 |
Februari 2021 |
Maart 2021 |
April 2021 |
Mei 2021 |
Juni 2021 |
Juli 2021 |
Augustus 2021 |
September 2021 |
Oktober 2021 |
November 2021 |
December 2021 |
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub Issues geleidelijk uitfaseren als het feedbackmechanisme voor inhoud. Het wordt vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor