10

我想别名以下的输出:

-- Test table with some rubbish data
DECLARE @Test TABLE
(
    Names [varchar](20)
)
INSERT INTO @Test
SELECT 'Simon'

-- Query returns but with XML_<GUID> alias
SELECT 
    Names
FROM 
    @Test t 
FOR XML PATH ('Test')

因此,为了论证,我想给它一个别名“Test”,而不是 XML_GUID 的列标题。我似乎无法得到它。有谁知道怎么做?我尝试从这里遵循一个示例:http: //social.msdn.microsoft.com/Forums/nl/sqlxml/thread/1605c722-6388-40ff-9ab5-a3817a1db81f但我似乎无法让它返回。我总是遇到错误,说第 1 列没有名称。

任何帮助表示赞赏。

谢谢,

西蒙

4

1 回答 1

16

使其成为子查询:

select (
SELECT 
    Names
FROM 
    @Test t 
FOR XML PATH ('Test'),TYPE) as Test

子查询产生值但从不提供列的名称。我还指定,TYPE了,否则它会强制转换为varchar(max)结果,而您可能希望将其保留为xml.

于 2013-01-17T13:16:03.533 回答