gpt4 book ai didi

sql-server - XML 数据到 SQL Server 表

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:30 25 4
gpt4 key购买 nike

我在网上寻找使用 T-SQL 将 XML 数据转换为表格的方法。我只看到部分答案。我的 XML 有点不同。有人可以帮我解决以下问题。

DECLARE @XmlData XML

SELECT @XmlData = '<header>
<data>
<numbersData>
<numbers>
<number>1</number>
<number>2</number>
</numbers>
</numbersData>
</data>
<data>
<numbersData>
<numbers>
<number>3</number>
<number>4</number>
</numbers>
</numbersData>
</data>
</header>'

查询:

SELECT 
Numbers.Data.value('(number)[1]', 'VARCHAR(100)') AS Num
FROM
@XmlData.nodes('/header/data/numbersData/numbers') Numbers(Data)

结果:

Num
----
1
3

请注意,它只返回 1 和 3。缺少 2 和 4。

不幸的是,这个文件来自客户端,他们不会改变格式。我正在尝试获得以下结果

Num
---
1
2
3
4

最佳答案

为什么要将那些明显是数字的值转换成VARCHAR(100) ?没有任何意义....

无论如何 - 试试这个 SELECT声明:

SELECT 
Data.value('.', 'INT') AS Num
FROM
@XmlData.nodes('/header/data/numbersData/numbers/number') Numbers(Data)

XPath 基本上一直“向下钻取”到<number>。 XML 元素,从而获得所有这些元素的完整列表,并将它们的值转换为 INT - 这会输出所需的四个数字。

关于sql-server - XML 数据到 SQL Server 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52375481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com