我在查询中使用FOR XML将多个行连接在一起,但文本包含引号“<”,“>”等。我需要实际字符而不是编码值,例如“ "“等。有什么建议吗?对于XML编码的TSQL反向
0
A
回答
1
我有一个类似的需求来提取列名以用于PIVOT查询。
我使用的解决方案如下:
SELECT @columns = STUFF((SELECT '],[' + Value
FROM Table
ORDER BY Value
FOR XML PATH('')), 1, 2, '') + ']'
这将产生一个字符串:
[Value 1],[Value 2],[Value 3]
我希望这点你在正确的方向。
3
基本上你要求的是无效的XML,幸运的是SQL Server不会生成它。您可以使用生成的XML并提取内容,并且此操作会将转义字符还原为其文本表示。该恢复通常发生在presnetaitonlayer中,但它可以在SQL Server中通过实例使用XML方法来提取生成的FOR XML输出的内容。例如:
declare @text varchar(max) = 'this text has <and>';
declare @xml xml;
set @xml = (select @text as [node] for xml path('nodes'), type);
select @xml;
select x.value(N'.', N'varchar(max)') as [text]
from @xml.nodes('//nodes/node') t(x);
0
--something like this?
SELECT * INTO #Names FROM (
SELECT Name='<>&' UNION ALL
SELECT Name='ab<>'
) Names;
-- 1)
SELECT STUFF(
(SELECT ', ' + Name FROM #Names FOR XML PATH(''))
,1,2,'');
-- 2)
SELECT STUFF(
(SELECT ', ' + Name FROM #Names FOR XML PATH(''),TYPE).value('text()[1]','nvarchar(max)')
,1,2,'');
-- 2) is slower but will not return encoded value.
希望它有帮助。
相关问题
- 1. 用于XML的TSQL导出实际的UTF-8编码数据
- 2. TSQL反向LIKE语句
- 3. 反向地理编码v3
- 4. 反向base64编码和gzcompress
- 5. J2ME +反向地理编码
- 6. 对于圈子反向..undefined
- 7. 解码反编译的源代码对于Android
- 8. HTML中的反向地理编码
- 9. OSX上的反向地理编码/ MapKit?
- 10. 以色列的反向地理编码
- 11. xcode中的反向地理编码
- 12. XML反序列化编码问题
- 13. tsql for xml,complex xml
- 14. TSQL对订购集编号
- 15. TSQL相对星期编号
- 16. Android:反向地理编码 - getFromLocation
- 17. 无法实现反向地理编码
- 18. 反向地理编码getPostalCode启动
- 19. 反向地理编码android定价
- 20. 反向地理编码和本地化
- 21. 反向地理编码使用MKReverseGeocoder
- 22. Google Maps API反向地理编码 - result_type?
- 23. 谷歌Api反向地理编码器
- 24. Google反向地理编码问题
- 25. 反向地理编码与AngularJS
- 26. 谷歌api反向地理编码
- 27. 如何反向地理编码
- 28. 谷歌反向地理编码 - 获取邮政编码
- 29. XML反对反序列化
- 30. TSQL XML解析
完美!谢谢! – Benny 2010-06-24 23:26:12