sql - 用根包裹 XML 值 - sql server

标签 sql sql-server xml

我试图用根值包装所有 xml 值。

Create table #temp( ID bigint, Child_XMl xml)

Insert into #temp values (1,'<Root>A</Root>')
Insert into #temp values (1,'<Root>B</Root>')
Insert into #temp values (1,'<Root>C</Root>')
Insert into #temp values (2,'<Root>D</Root>')

Select Child_XMl  from #temp
where ID=1
for xml path(''), type,elements

预期结果:

<Roots>
    <Root>A</Root>
    <Root>B</Root>
    <Root>C</Root>
<Roots>

最佳答案

诀窍是确保该列是无名的;当列的类型为 XML 时,它将被内联。这需要使用表达式,因为不允许将列显式别名为空名称。

SELECT Child_Xml.query('.')
FROM #temp
WHERE ID = 1
FOR XML PATH(''), ROOT('Roots'), TYPE

关于sql - 用根包裹 XML 值 - sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593651/

相关文章:

sql-server - 如何从子id中选择父id

android - 如何在android中创建六边形 ListView

mysql - 连接两个表以显示第二个表中的行数

java - Hibernate 在读取 Java Calendar 对象并将其写入 SQL TIMESTAMP 时使用什么时区?

sql-server - SQL Server 中的 XP_DirTree

sql - 如何编写更新查询以使用 SQL 数据源更新两个表?

xml - 使用并行化通过 R 抓取网页

java - 不幸的是,卡里斯托已经停止工作

sql - 数据库设计 - 可空字段

sql - 在 Oracle11g 中使用函数作为列的默认值