【发布时间】:2021-10-19 05:16:52
【问题描述】:
有很多将记录集插入 XML 的示例,但它们往往非常基础,并不能满足我的具体要求。在下面的例子中,我想将一些数据提取到 XML 中,在其中,我需要一个节点集合来表示可变数量的记录。我知道它可以做到,因为我有一个例子,但我不明白它是如何工作的。我确实理解我返回数据集的代码可能没有意义,但这只是为了代表我试图实现的一个示例。
SELECT 'Node' AS [A/B],
(
SELECT x.Item
FROM (
SELECT 'Line1' AS [Item]
FROM (SELECT 1 AS x) x
UNION
SELECT 'Line2' AS [Item]
FROM (SELECT 1 AS x) x
) x
FOR XML PATH(''), ROOT('Lines'), TYPE
)
FROM (SELECT 1 AS x) x
FOR XML PATH('Demo')
这给了我以下信息:
<Demo>
<A>
<B>Node</B>
</A>
<Lines>
<Item>Line1</Item>
<Item>Line2</Item>
</Lines>
</Demo>
我想要的是以下内容:
<Demo>
<A>
<B>Node</B>
<Lines>
<Item>Line1</Item>
<Item>Line2</Item>
</Lines>
</A>
</Demo>
谁能帮助或指出正确的答案?
【问题讨论】:
-
如果您可以添加一些示例数据以配合您想要的输出,最好是作为
create table语句,您可能会在这里获得更多帮助,因为我们可以轻松复制并粘贴到我们的自己的环境来测试我们的想法 -
…ROOT('Lines'), TYPE ) as [A/*] FROM (SELECT 1 AS x) x…dbfiddle.uk/… -
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上面#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。
标签: sql sql-server xml