COMBINEVALUES
Ισχύει για:Υπολογιζόμενη στήληΥπολογιζόμενος πίνακαςΜέτρηση υπολογισμού απεικόνισης
Συνδέει δύο ή περισσότερες συμβολοσειρές κειμένου σε μία συμβολοσειρά κειμένου. Ο κύριος σκοπός αυτής της συνάρτησης είναι η υποστήριξη σχέσεων πολλών στηλών σε μοντέλα DirectQuery. Για λεπτομέρειες, ανατρέξτε στις παρατηρήσεις .
Σύνταξη
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Παραμέτρους
Όρος | Ορισμός |
---|---|
delimiter |
Ένα διαχωριστικό που θα χρησιμοποιηθεί κατά τη συνένωση. Πρέπει να είναι μια τιμή σταθεράς. |
expression |
Μια παράσταση DAX της οποίας η τιμή θα ενωθεί σε μία μόνο συμβολοσειρά κειμένου. |
Τιμή επιστροφής
Μια συνενωμένη συμβολοσειρά.
Παρατηρήσεις
Η συνάρτηση COMBINEVALUES υποθέτει, αλλά δεν επικυρώνει, ότι όταν οι τιμές εισόδου διαφέρουν, οι συμβολοσειρές εξόδου διαφέρουν επίσης. Με βάση αυτή την υπόθεση, όταν χρησιμοποιείται η COMBINEVALUES για τη δημιουργία υπολογιζόμενων στηλών προκειμένου να δημιουργηθεί μια σχέση που συνδέει πολλές στήλες από δύο πίνακες DirectQuery, δημιουργείται μια βελτιστοποιημένη συνθήκη σύνδεσης κατά τον χρόνο ερωτήματος. Για παράδειγμα, εάν οι χρήστες θέλουν να δημιουργήσουν μια σχέση μεταξύ του Table1(Column1, Column2) και Table2(Column1, Column2), μπορούν να δημιουργήσουν δύο υπολογιζόμενες στήλες, μία σε κάθε πίνακα, όπως:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
και
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
Και, στη συνέχεια, δημιουργήστε μια σχέση μεταξύ
Table1[CalcColumn]
καιTable2[CalcColumn]
. Σε αντίθεση με άλλες συναρτήσεις και τελεστές DAX, τα οποία μεταφράζονται κυριολεκτικά στους αντίστοιχους τελεστές και συναρτήσεις SQL, η παραπάνω σχέση δημιουργεί ένα κατηγόρημα ένωσης SQL ως:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
και
(Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
Το κατηγόρημα ένωσης μπορεί πιθανώς να παρέχει πολύ καλύτερες επιδόσεις ερωτημάτων σε σχέση με ένα που περιλαμβάνει σύνθετους τελεστές και συναρτήσεις SQL.
Η συνάρτηση COMBINEVALUES βασίζεται στους χρήστες για να επιλέξουν τον κατάλληλο οριοθέτη για να εξασφαλίσει ότι οι μοναδικοί συνδυασμοί τιμών εισόδου παράγουν διακριτές συμβολοσειρές εξόδου, αλλά δεν επαληθεύει ότι η υπόθεση είναι αληθής. Για παράδειγμα, εάν οι χρήστες επιλέξουν
"| "
ως οριοθέτη, αλλά μία γραμμή στον Table1 έχειTable1[Column1] = "| "
καιTable2 [Column2] = " "
, ενώ μία γραμμή στον Table2 έχειTable2[Column1] = " "
καιTable2[Column2] = "| "
, οι δύο συνδεδεμένες έξοδοι θα είναι οι ίδιες"|| "
, οι οποίες φαίνεται να υποδεικνύουν ότι οι δύο γραμμές είναι αντιστοιχίες στη λειτουργία ένωσης. Οι δύο γραμμές δεν συνενώνονται εάν και οι δύο πίνακες προέρχονται από την ίδια προέλευση DirectQuery, παρόλο που συνενώνονται εάν εισαχθούν και οι δύο πίνακες.
Παράδειγμα
Το παρακάτω ερώτημα DAX:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Επιστρέφει τον παρακάτω πίνακα μοναδικής στήλης:
[Μήνας] |
---|
Ιανουάριος 2020 |
Φεβρουάριος 2020 |
Μάρτιος 2020 |
Απρίλιος 2020 |
Μάιος 2020 |
Ιούνιος 2020 |
Ιούλιος, 2020 |
Αύγουστος 2020 |
Σεπτέμβριος, 2020 |
Οκτώβριος 2020 |
Νοέμβριος 2020 |
Δεκέμβριος 2020 |
Ιανουάριος 2021 |
Ιανουάριος 2021 |
Φεβρουάριος 2021 |
Μάρτιος 2021 |
Απρίλιος 2021 |
Μάιος 2021 |
Ιούνιος 2021 |
Ιούλιος, 2021 |
Αύγουστος 2021 |
Σεπτέμβριος, 2021 |
Οκτώβριος 2021 |
Νοέμβριος 2021 |
Δεκέμβριος 2021 |