Không có kỹ thuật thực sự nào để học ở đây. Nó chỉ là một thủ thuật dễ thương để nối nhiều hàng dữ liệu thành một chuỗi duy nhất. Đó là một cách sử dụng tính năng kỳ quặc hơn là một mục đích sử dụng XML
tính năng định dạng.
SELECT ',' + ColumnName ... FOR XML PATH('')
tạo một tập hợp các giá trị được phân tách bằng dấu phẩy, dựa trên việc kết hợp nhiều hàng dữ liệu từ ColumnName
cột. Nó sẽ tạo ra một giá trị như ,abc,def,ghi,jkl
.
STUFF(...,1,1,'')
Sau đó, được sử dụng để xóa dấu phẩy đứng đầu mà thủ thuật trước đó đã tạo, xem STUFF
để biết chi tiết về các thông số của nó.
(Thật kỳ lạ, nhiều người có xu hướng gọi phương pháp tạo tập giá trị được phân tách bằng dấu phẩy là "phương pháp STUFF" mặc dù STUFF
chỉ chịu trách nhiệm về một chút cắt tỉa cuối cùng)