COMBINEVALUES
Ισχύει για: Υπολογισμός απεικόνισης υπολογιζόμενης στήλης υπολογιζόμενου πίνακα Μέτρηση
Συνδέει δύο ή περισσότερες συμβολοσειρές κειμένου σε μία συμβολοσειρά κειμένου. Ο κύριος σκοπός αυτής της συνάρτησης είναι η υποστήριξη σχέσεων πολλών στηλών σε μοντέλα DirectQuery. Για λεπτομέρειες, ανατρέξτε στην ενότητα Παρατηρήσεις .
Σύνταξη
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <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 |