Trong CSDL có 1 bảng khách hàng (lưu thông tin khách hàng),1 bảng sở thích(lưu thông tin sở thích) và 1 bảng chi tiết sở thích(lưu sở thích của khách hàng). Một khách hàng có nhìu sở thích mình sử dụng câu select:
select tenkh,tensothich from khachhang a,sothich b,chitietsothich c where a.makh=c.makh and b.masothich=c.masothich
Khi thực thi thì nó sẽ như trong hình.
Muốn mỗi dòng là một khách hàng và mỗi sở thích cách nhau bởi dấu phẩy thì:
SELECT MAX(z.ten_kh) AS ten_kh,
STUFF((
SELECT ', ' + B.tensothich
FROM chitietsothich a
LEFT JOIN so_thich B
ON a.masothich = B.masothich
WHERE a.makh = z.ma_kh
FOR XML PATH ('')) , 1, 1, '') AS tensothich
FROM khachhang AS z
GROUP BY z.ma_kh