อย่างไรก็ตาม PostgreSQL ไม่รองรับฟังก์ชัน group_concat() ซึ่งแตกต่างจาก MySQL ดังนั้นบทช่วยสอนนี้จะสำรวจวิธีที่เราสามารถใช้งานฟังก์ชันที่คล้ายกันได้โดยใช้ฟังก์ชัน string_agg()
ฟังก์ชัน PostgreSQL String_Agg
ฟังก์ชัน string_agg ใน PostgreSQL ช่วยให้เราสามารถเชื่อมค่าจากหลายแถวเข้าด้วยกันเป็นสตริงเดียว และคั่นด้วยพารามิเตอร์ที่ระบุ
การใช้ไวยากรณ์ของฟังก์ชันมีดังต่อไปนี้:
เลือก string_agg (ชื่อคอลัมน์ ตัวคั่น)
จาก table_name
เงื่อนไขอยู่ที่ไหน
จัดกลุ่มตาม grouping_columns;
ไวยากรณ์ต่อไปนี้แสดงไว้ดังนี้:
ชื่อคอลัมน์ – มันระบุชื่อของคอลัมน์ที่เราต้องการเชื่อมคอลัมน์
ตัวคั่น – กำหนดอักขระตัวคั่นที่ใช้เมื่อรวมค่าอินพุต
table_name – ตารางเป้าหมายที่มีข้อมูล
grouping_columns – ระบุคอลัมน์ที่ใช้ในการจัดกลุ่มข้อมูลที่ระบุ
ตัวอย่างฟังก์ชัน PostgreSQL String_Agg
ให้เรายกตัวอย่างที่เป็นประโยชน์มากขึ้นเพื่อแสดงให้เห็นว่าฟังก์ชันทำงานอย่างไร สมมติว่าเรามีตารางที่มีข้อมูลของนักเรียน ตารางประกอบด้วยสามคอลัมน์: รหัส ชื่อ และหัวเรื่อง
หากเราต้องการเชื่อมชื่อนักเรียนที่ลงทะเบียนเรียนในวิชาเดียวกัน เราสามารถใช้ฟังก์ชัน string_agg
เลือกหัวเรื่อง string_agg ( ชื่อ, ',' ) เป็นนักเรียนจากนักเรียน
กลุ่มตามเรื่อง;
เมื่อเราเรียกใช้แบบสอบถามที่กำหนด ควรส่งคืนชุดผลลัพธ์ที่มีสองคอลัมน์หลัก: หัวเรื่องและนักเรียน นักเรียนประกอบด้วยชื่อนักเรียนที่ต่อกันสำหรับแต่ละวิชาและคั่นด้วยเครื่องหมายจุลภาค
บันทึก : ฟังก์ชัน string_agg เรียงลำดับค่าที่ต่อกันตามค่าเริ่มต้น คุณสามารถเพิ่ม ORDER BY clause ภายในฟังก์ชัน string_agg เพื่อรักษาลำดับเดิม
คุณมีมัน! วิธีที่ตรงไปตรงมาและมีประสิทธิภาพในการบรรลุฟังก์ชันการทำงานที่คล้ายคลึงกันซึ่งมีให้โดยฟังก์ชัน group_concat() ใน PostgreSQL
บทสรุป
ในบทช่วยสอนสั้นๆ แต่ได้ผลดีนี้ เราได้เรียนรู้วิธีใช้ฟังก์ชัน string_agg ใน PostgreSQL เพื่อให้ได้ฟังก์ชันที่คล้ายคลึงกันซึ่งมีให้โดยฟังก์ชัน group_concat() ใน MySQL