别名FOR XML PATH结果

时间:2013-01-17 13:12:26

标签: sql sql-server tsql

我想为以下输出添加别名:

-- 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列没有名称。

任何帮助表示感谢。

谢谢,

西蒙

1 个答案:

答案 0 :(得分:13)

将其设为子查询:

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

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