Bagikan melalui


COMBINEVALUES

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan visual

Menggabungkan dua string teks atau lebih ke dalam satu string teks. Tujuan utama fungsi ini adalah untuk mendukung hubungan multi-kolom dalam model DirectQuery. Lihat keterangan untuk detailnya.

Sintaksis

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

Parameter

Istilah Definisi
delimiter Pemisah yang digunakan selama penggalian. Harus berupa nilai konstanta.
expression Ekspresi DAX yang nilainya akan digabungkan ke dalam string teks tunggal.

Mengembalikan nilai

String yang digabungkan.

Komentar

  • Fungsi COMBINEVALUES mengasumsikan, tetapi tidak memvalidasi, bahwa ketika nilai input berbeda, string output juga berbeda. Berdasarkan asumsi ini, ketika COMBINEVALUES digunakan untuk membuat kolom terhitung untuk membangun hubungan yang menggabungkan beberapa kolom dari dua tabel DirectQuery, kondisi gabungan yang dioptimalkan dihasilkan pada waktu kueri. Misalnya, jika pengguna ingin membuat hubungan antara Table1(Column1, Column2) dan Table2(Column1, Column2), mereka dapat membuat dua kolom terhitung, satu di setiap tabel, sebagai:

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

    dan

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

    Lalu buat hubungan antara Table1[CalcColumn] dan Table2[CalcColumn]. Tidak seperti fungsi dan operator DAX lainnya, yang diterjemahkan secara harfiah ke operator dan fungsi SQL yang sesuai, hubungan di atas menghasilkan predikat gabungan SQL sebagai:

    (Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
    

    dan

    (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
    
  • Predikat gabungan berpotensi memberikan performa kueri yang jauh lebih baik daripada yang melibatkan operator dan fungsi SQL yang kompleks.

  • Fungsi COMBINEVALUES bergantung pada pengguna untuk memilih pemisah yang sesuai untuk memastikan bahwa kombinasi unik nilai input menghasilkan string output yang berbeda tetapi tidak memvalidasi bahwa asumsinya benar. Misalnya, jika pengguna memilih "| " sebagai pemisah, tetapi satu baris di Table1 memiliki Table1[Column1] = "| " dan Table2 [Column2] = " ", sementara satu baris di Table2 memiliki Table2[Column1] = " " dan Table2[Column2] = "| ", dua output yang digabungkan akan menjadi "|| "yang sama , yang tampaknya menunjukkan bahwa dua baris tersebut cocok dalam operasi gabungan. Dua baris tidak digabungkan jika kedua tabel berasal dari sumber DirectQuery yang sama meskipun digabungkan bersama-sama jika kedua tabel diimpor.

Contoh

Kueri DAX berikut ini:

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

Mengembalikan tabel kolom tunggal berikut:

[Bulan]
Januari 2020
Februari 2020
Maret, 2020
April, 2020
Mei, 2020
Juni, 2020
Juli 2020
Agustus 2020
September, 2020
Oktober 2020
November 2020
Desember, 2020
Januari 2021
Januari 2021
Februari 2021
Maret, 2021
April, 2021
Mei, 2021
Juni 2021
Juli 2021
Agustus 2021
September, 2021
Oktober 2021
November 2021
Desember 2021