sql - 为什么 SQL 将 & 显示为 &?

标签 sql tsql

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, '&amp;', '&')

并嵌套替换其他字符。

关于sql - 为什么 SQL 将 & 显示为 &?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618211/

相关文章:

mysql - 规则的最后结果

sql - 获取内容-原始参数错误

sql - 在SQL Server存储过程中处理重复方案

sql - 如何防止 SQL 中的日期重叠?

sql - 跨不同环境查询存储过程中的多个数据库的最佳方法是什么

mysql - 繁重的存储过程可以等待另一个 SP 完成吗?

sql - 在 SQL Server 数据库中保存 pem 证书

c# - 如何根据参数的动态数量过滤查询

sql-server - T-SQL 查询显示表定义?

sql-server-2005 - 如何搜索给定字符串值的 "around"行?