Table test
name | value |
A | 2 |
A | 3 |
B | 4 |
B | 5 |
B | 6 |
C | 3 |
C | 4 |
จากตารางข้างต้น ต้องการให้คิวรี่แล้วได้ผลลัพธ์ เป็น Group by name และเรียงข้อมูล value ใหม่ตามตาราง ที่มีเครื่องหมาย จุลภาคคั่นอยู่ (,)
A B C |
1,2,3 4,5,6 3,4 |
ซึ่งคำสั่งในการใช้งานของ MSSQL SERVER กับ MYSQL นั้นจะไม่เหมือนกันคือ
– รูปแบบคำสั่งใน MSSQL SERVER จะใช้คำสั่ง FOR XML PATH ดังนี้
select t2.name, STUFF((SELECT distinct ','+ Cast(t.value as varchar)
FROM test t where t.name = t2.name FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '') as value
from test t2
group by t2.name
select Name,group_concat(`Value` separator ',') as value
from test group by Name