作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个查询:
SELECT DISTINCT
f.CourseEventKey,
(
SELECT f.Title + '; ' AS [text()]
FROM @Facilities
WHERE CourseEventKey = f.CourseEventKey
ORDER BY f.Title
FOR XML PATH('')
) Facilities
FROM @Facilities f
它产生这个结果集:
CourseEventKey Facilities
-------------- -----------------------------------
29 Test Facility 1;
30 Memphis Training Room;
32 Drury Inn & Suites Creve Coeur;
数据很好,但是&
实际上是编码的&
,这不适合我的目的。
如何修改此查询以返回数据中特殊字符的原始值?
最佳答案
使用,TYPE).value('.','NVARCHAR(MAX)')
并且您的特殊字符不会被转义:
SELECT DISTINCT
f.CourseEventKey,
(
SELECT f.Title + '; ' AS [text()]
FROM @Facilities
WHERE CourseEventKey = f.CourseEventKey
ORDER BY f.Title
FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)')
AS Facilities
FROM @Facilities f
这归功于Rob Farley .
更新:
我刚刚听说这个新方法。我还没有彻底测试它,希望得到任何反馈。我们可以替换[text()]
与 [processing-instruction(x)]
,像这样
select 'hello & there >' as [processing-instruction(x)] FOR XML PATH('')
将返回
<?x hello & there >?>
我们只需要去掉 <? ... ?>
关于sql - 如何在查询中使用 FOR XML PATH ('' )而不转义特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23140080/
我是一名优秀的程序员,十分优秀!