Вы можете использовать XQuery
для этого:
DECLARE @xml XML=
N'<RuleSetting>
<CurrentQueue>1559</CurrentQueue>
<CurrentQueue>1560</CurrentQueue>
<CurrentQueue>1561</CurrentQueue>
<CurrentQueue>1564</CurrentQueue>
</RuleSetting>';
SELECT STUFF(@xml.query(N'
for $nd in /RuleSetting/CurrentQueue/text()
return
<x>{concat(",",$nd)}</x>
').value('.','nvarchar(max)'),1,1,'');
Если вы можете быть уверены, что ваши данные никогда не будут содержать пробелов, вы можете использовать этот простой подход:
SELECT REPLACE(@xml.query(N'data(/RuleSetting/CurrentQueue)')
.value(N'.',N'nvarchar(max)'),' ',',');
Подсказка: XQuery
функция data()
вернет все значения, разделенные пробелом, которые можно заменить на строковом уровне.