COMBINEVALUES
Şunlar için geçerlidir: Hesaplanmış sütun Hesaplanan tablo Ölçü Görseli hesaplaması
İki veya daha fazla metin dizesini tek bir metin dizesinde birleştirir. Bu işlevin birincil amacı, DirectQuery modellerinde çok sütunlu ilişkileri desteklemektir. Ayrıntılar için bkz . Açıklamalar .
Sözdizimi
COMBINEVALUES(<delimiter>, <expression>, <expression>[, <expression>]…)
Parametreler
Süre | Tanım |
---|---|
sınırlayıcı | Birleştirme sırasında kullanılacak ayırıcı. Sabit bir değer olmalıdır. |
ifade | Değeri tek bir metin dizesine birleştirilecek bir DAX ifadesi. |
Dönüş değeri
Birleştirilmiş dize.
Açıklamalar
COMBINEVALUES işlevi, giriş değerleri farklı olduğunda çıkış dizelerinin de farklı olduğunu varsayar ancak doğrulamaz. Bu varsayıma bağlı olarak, iki DirectQuery tablosundan birden çok sütunu birleştiren bir ilişki oluşturmak üzere hesaplanan sütunlar oluşturmak için COMBINEVALUES kullanıldığında, sorgu zamanında iyileştirilmiş bir birleştirme koşulu oluşturulur. Örneğin, kullanıcılar Tablo1(Sütun1, Sütun2) ile Tablo2(Sütun1, Sütun2) arasında bir ilişki oluşturmak isterse, her tabloda biri olmak üzere iki hesaplanmış sütun oluşturabilir:
Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2])
ile
Table2[CalcColumn] = COMBINEVALUES(",", Table2[Column1], Table2[Column2])
Ardından ve
Table2[CalcColumn]
arasındaTable1[CalcColumn]
bir ilişki oluşturun. Tam anlamıyla karşılık gelen SQL işleçlerine ve işlevlerine çevrilen diğer DAX işlevlerinin ve işleçlerinin aksine, yukarıdaki ilişki aşağıdaki gibi bir SQL birleştirme koşulu oluşturur:(Table1.Column1 = Table2.Column1 OR Table1.Column1 IS NULL AND Table2.Column1 IS NULL)
ile
(Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL)
Birleştirme koşulu, karmaşık SQL işleçleri ve işlevleri içeren sorgu performansından çok daha iyi bir performans sunabilir.
COMBINEVALUES işlevi, kullanıcıların benzersiz giriş değerleri bileşimlerinin ayrı çıkış dizeleri ürettiğinden emin olmak için uygun sınırlayıcıyı seçmesine dayanır, ancak varsayımın doğru olduğunu doğrulamaz. Örneğin, kullanıcılar sınırlayıcı olarak seçerse
"| "
, ancak Tablo1'de bir satır veTable2 [Column2] = " "
seçeneğine sahipseTable2[Column1] = " "
Table1[Column1] = "| "
, Tablo2'deki bir satırda veTable2[Column2] = "| "
varsa, birleştirilmiş iki çıkış aynı"|| "
olur ve bu da birleştirme işleminde iki satırın eşleşme olduğunu gösterir. İki tablo da aynı DirectQuery kaynağından geliyorsa, her iki tablo da içeri aktarılırsa birlikte birleştirilse de, iki satır birbirine katılmaz.
Örnek
Aşağıdaki DAX sorgusu:
EVALUATE
DISTINCT (
SELECTCOLUMNS ( Date, "Month", COMBINEVALUES ( ", ", [MonthName], [CalendarYear] ) )
)
Aşağıdaki tek sütunlu tabloyu döndürür:
[Ay] |
---|
Ocak 2020 |
Şubat 2020 |
Mart 2020 |
Nisan 2020 |
Mayıs 2020 |
Haziran 2020 |
Temmuz 2020 |
Ağustos 2020 |
Eylül 2020 |
Ekim 2020 |
Kasım 2020 |
Aralık 2020, Cumartesi |
Ocak 2021 |
Ocak 2021 |
Şubat 2021, Şubat |
Mart 2021 |
Nisan 2021, Nisan |
Mayıs 2021 |
Haziran 2021 |
Temmuz 2021, Temmuz |
Ağustos 2021, Ağustos |
Eylül, 2021 |
Ekim 2021, Cumartesi |
Kasım 2021, Kasım |
Aralık 2021, Cumartesi |