Κοινή χρήση μέσω


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