Jika Anda menggunakan SQL Server 2005 atau lebih tinggi, Anda dapat menggunakan FOR XML PATH & STUFF
ini trik:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
FOR XML PATH('')
pada dasarnya menggabungkan string Anda menjadi satu, hasil XML yang panjang (seperti ,code1,code2,code3
dll.) dan STUFF
menempatkan karakter "tidak ada" di karakter pertama, mis. menghapus koma pertama yang "berlebihan", untuk memberikan hasil yang mungkin Anda cari.
PERBARUI: OK - Saya mengerti komentarnya - jika teks Anda di tabel database sudah berisi karakter seperti <
, >
atau &
, lalu solusi saya saat ini sebenarnya akan menyandikannya menjadi <
, >
, dan &
.
Jika Anda memiliki masalah dengan penyandian XML itu - maka ya, Anda harus melihat solusi yang diusulkan oleh @KM yang juga berfungsi untuk karakter tersebut. Satu kata peringatan dari saya:pendekatan ini lebih banyak intensif sumber daya dan pemrosesan - asal tahu saja.