从FOR XML Sql查询解码文本

用户名

假设我正在使用FOR XML子查询来进行串联和排序,此外,数据还包含尖括号:

SELECT STUFF((SELECT ', ' + '<' + NAME + '>'
          FROM   [sys].[login_token]
          ORDER  BY NAME
          FOR XML PATH('')), 1, 2, '') AS Logins; 

输出是这样的

&lt;\Everyone&gt;, &lt;BUILTIN\Administrators&gt;, &lt;BUILTIN\Administrators&gt;

我如何对其进行解码,也就是说,像这样:

<\Everyone>, <BUILTIN\Administrators>, <BUILTIN\Administrators>,

用户名

您可以对XML进行查询并返回转换后的值!

SELECT STUFF((SELECT ', ' + '<' + NAME + '>'
          FROM   [sys].[login_token]
          ORDER  BY NAME
          FOR XML PATH(''), type).value('.','NVARCHAR(MAX)')
          , 1, 2, '') AS Logins; 

您将添加, typeFOR XML PATH规范中,然后将.value其转换为XQuery表达式和数据类型!在此处查看MSDN:

https://msdn.microsoft.com/zh-CN/library/ms178030.aspx

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章