Possible Duplicate:
help with FOR XML PATH('') escaping “special” characters
我需要一些帮助,我的查询如下:
STUFF(
(
SELECT ',' + CountDesc
FROM Count INNER JOIN ProjectCount ON Count.Id = ProjectCount.CountId
WHERE ProjectCount.ProjectId = Project.Id ORDER BY Count.CountDesc
FOR XML PATH('')
), 1, 1, '') as [Country]
当我运行此查询并且计数表的其中一个字段中有一个 & 时,会发生什么情况,它将 & 显示为 &
。
有什么办法可以避免这种情况发生吗?
提前致谢。
最佳答案
发生这种情况是因为 XML 语句中组合的字符串使用 XML 特定字符。除了 & 之外,还影响 < 和 >,可能还影响其他字符。
我通常会在调用后进行替换来修复此问题:
select @str = replace(@str, '&', '&')
并嵌套替换其他字符。
关于sql - 为什么 SQL 将 & 显示为 &?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618211/