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 |
กุมภาพันธ์ พ.ศ. 2563 |
มีนาคม พ.ศ. 2563 |
เมษายน พ.ศ. 2563 |
พฤษภาคม พ.ศ. 2563 |
มิถุนายน 2020 |
กรกฎาคม พ.ศ. 2563 |
สิงหาคม 2020 |
กันยายน 2020 |
ตุลาคม พ.ศ. 2563 |
พฤศจิกายน พ.ศ. 2563 |
ธันวาคม 2020 |
มกราคม 2021 |
มกราคม 2021 |
กุมภาพันธ์ พ.ศ. 2564 |
มีนาคม พ.ศ. 2564 |
เมษายน พ.ศ. 2564 |
พฤษภาคม พ.ศ. 2564 |
มิถุนายน พ.ศ. 2564 |
กรกฎาคม พ.ศ. 2564 |
สิงหาคม 2021 |
กันยายน พ.ศ. 2564 |
ตุลาคม พ.ศ. 2564 |
พฤศจิกายน พ.ศ. 2564 |
ธันวาคม 2021 |