2015-03-24 55 views
0

在SQL Server中,如果我运行下面的查询SQL Server中的XML PATH删除XML

SELECT Name FROM Roles 
FOR XML PATH('') 

我得到

<Name>Admin</Name><Name>SuperAdmin</Name><Name>UltraAdmin</Name> 

这是有道理的。但是,如果我串连的名称字段与另一个字符,则封闭XML元素远:

SELECT '_' + Name + '_' FROM Roles 
FOR XML PATH('') 

我得到

_Admin__SuperAdmin__UltraAdmin_ 

我期待

<Name>_Admin_</Name><Name>_SuperAdmin_</Name><Name>_UltraAdmin_</Name> 

什么dilleo?

回答

2

MSDN上的FOR XML PATH用法:

...计算列或不指定 列别名会生成列没有任何名称的嵌套标量查询。

要获得期望的结果使用别名:

SELECT '_' + Name + '_' AS Name FROM Roles 
FOR XML PATH('')