Ví dụ bạn có bảng:
ProductID CustomerName
---------- -------------
1 Tuấn
1 Minh
1 Linh
2 Ngọc
2 Hiền
Bạn muốn kết quả ra như sau:
ProductID CustomerName
---------- -------------
1 Tuấn, Minh, Linh
2 Ngọc, Hiền
Bạn có thể dùng câu lệnh này:
SELECT DISTINCT C2.ProductID, SUBSTRING( ( SELECT ','+C1.CustomerName AS [TEXT()] FROM dbo.Customer C1 WHERE C1.ProductID = C2.ProductID ORDER BY C1.ProductID FOR XML PATH ('') ), 2, 1000) CustomerList FROM dbo.Customer C2
DECLARE @NAMES NVARCHAR(4000) SELECT @NAMES = COALESCE(@NAMES + ', ', '') + CustomerName FROM dbo.Customer SELECT @NAMES
xem thêm trang này
tham khảo Địa chỉ này
Trường hợp bạn muốn trường CustomerName là trường numeric cách viêt sẽ như sau:
DECLARE @NAMES NVARCHAR(4000) SELECT @NAMES = COALESCE(@NAMES + ', ', '') + CONVERT(NVARCHAR,CustomerName) FROM dbo.Customer SELECT @NAMES