Giả sử tôi có một bảng tạm thời mà trông như thế này:SQL Server - tham gia hàng vào dấu phẩy tách ra danh sách
+----+------+
| Id | Value|
+----+------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
+----+------+
Và tôi muốn bàn của tôi là như thế này:
+----+----------+
| Id | ValueList|
+----+----------+
| 1 | 1,2,3 |
| 2 | 1,2 |
+----+----------+
Vì vậy, về cơ bản Tôi cần nhóm các giá trị của mình dưới dạng danh sách được phân tách bằng dấu phẩy. Tôi đã thử như sau:
SELECT Id, STUFF((SELECT ',' + CAST(VALUE AS varchar) FROM @MyTable FOR XML PATH('')), 1 ,1, '') AS ValueList
FROM @MyTable
GROUP BY Id
Nhưng tôi nhận được một cái gì đó như:
+----+---------------------+
| Id | ValueList |
+----+---------------------+
| 1 | 1,1,1,1,1,1,... |
+----+---------------------+
tôi không thể tìm thấy những gì tôi đang làm sai. Ai đó có thể trợ giúp với truy vấn này? Hoặc hướng tôi đi đúng hướng? Cảm ơn bạn.
có thể trùng lặp của [? Làm thế nào để sử dụng GROUP BY để nối chuỗi trong SQL Server] (https://stackoverflow.com/questions/273238/how-to-use-group-by -to-concatenate-strings-in-sql-server) – Wanderer