选择结果的几列设置为XML(Selecting few columns of a result se

2019-10-16 15:23发布

我有一个简单的SELECT它选择从单一的表几列声明:

SELECT id, name, phone, address 
FROM tmp_user

是否有可能因此只有改变这种查询idname都在选择和剩余的细节是在一个XML节点?

我预计这个选择的输出应

id  name        extra data
1   Shreedhar   <data><phone>...</phone><address>...</address></data>
2   John Doe    <data><phone>...</phone><address>...</address></data>
3   Jane Doe    <data><phone>...</phone><address>...</address></data>

最后一列是返回表的应该是XML类型与所需的数据。 我知道整个结果集如何转换使用FOR XML到XML。 不过我期待只为列的部分转换。 可能吗?

Answer 1:

当然! 没问题 - 尝试是这样的:

SELECT 
    id, name,
    (SELECT phone, address
     FROM dbo.tmp_user u2
     WHERE u2.id = u1.id
     FOR XML PATH('data')) AS 'ExtraData'
FROM    
   dbo.tmp_user u1

这给了我一个漂亮的输出完全一样,你要寻找的人。



文章来源: Selecting few columns of a result set as XML