Nếu bạn đang sử dụng SQL Server 2005 trở lên, bạn có thể sử dụng FOR XML PATH & STUFF
này lừa:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
FOR XML PATH('')
về cơ bản nối các chuỗi của bạn với nhau thành một kết quả XML dài (chẳng hạn như ,code1,code2,code3
v.v.) và STUFF
đặt một ký tự "không có gì" ở ký tự đầu tiên, ví dụ:xóa sạch dấu phẩy đầu tiên "thừa" để cung cấp cho bạn kết quả có thể bạn đang tìm kiếm.
CẬP NHẬT: OK - tôi hiểu các nhận xét - nếu văn bản của bạn trong bảng cơ sở dữ liệu đã chứa các ký tự như <
, >
hoặc &
, thì giải pháp hiện tại của tôi trên thực tế sẽ mã hóa chúng thành <
, >
và &
.
Nếu bạn gặp sự cố với mã hóa XML đó - thì có, bạn phải xem giải pháp do @KM đề xuất, giải pháp này cũng hoạt động cho các ký tự đó. Một từ cảnh báo từ tôi:cách tiếp cận này còn nhiều hơn nữa tài nguyên và xử lý chuyên sâu - chỉ để bạn biết.