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