У меня есть следующий запрос:
select STUFF((SELECT ',' + rr1._cv_id
FROM #reportrows rr1
WHERE rr1._c_id=rr._c_id
FOR XML PATH('')),1, 1,null)FROM #reportrows rr
В этом запросе _cv_id имеет целочисленный тип. После выполнения этого запроса я вижу ошибку ниже:
Conversion failed when converting the varchar value ',' to data type int.
Любая помощь?!


Идентификатор не является строкой, поэтому преобразуйте его:
SELECT STUFF( (SELECT ',' + CONVERT(VARCHAR(MAX), rr1._cv_id)
. . .
похоже, что столбец cv_id имеет числовой тип данных. поэтому вам нужно преобразовать в строку перед объединением с запятой
select STUFF((SELECT ',' + convert(varchar(10), rr1._cv_id)
FROM #reportrows rr1
WHERE rr1._c_id=rr._c_id
FOR XML PATH('')),1, 1,null) FROM #reportrows rr
Вам нужно преобразовать rr1._cv_id в строку
select STUFF((SELECT ',' + CAST(rr1._cv_id AS VARCHAR(20))
FROM #reportrows rr1
WHERE rr1._c_id=rr._c_id
FOR XML PATH('')),1, 1,null)FROM #reportrows rr
varchar(MAX), вероятно, здесь излишний (еслиrr1._cv_id- этоint, тогда это должно быть самое большееvarchar(11), так как он может обрабатывать все возможные значения).