Ví dụ chúng ta 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
Hoặc cũng có thể dùng lệnh sau trong trường hợp bạn không cần group by ProductID mà chỉ cần một danh sách khách hàng nối với nhau:
DECLARE @NAMES NVARCHAR(4000)
SELECT @NAMES = COALESCE(@NAMES + ', ', '') + CustomerName
FROM dbo.Customer
SELECT @NAMES