gpt4 book ai didi

mysql - 将 XML 读入 SQL 表

转载 作者:行者123 更新时间:2023-11-28 23:57:16 26 4
gpt4 key购买 nike

我正在读取 xml 并将其写入 sql 表

想把下面的xml插入到表中

Declare @MainXml XML =
'<Parent>
<Root>
<Admin>admin1</Admin>
<Data number="1">
<Type value="100"></Type>
<Type value="200"></Type>
</Data>
</Root>
<Root>
<Admin>admin2</Admin>
<Data number="1">
<Type value="300"></Type>
<Type value="400"></Type>
</Data>
</Root>
</Parent>'

I am trying to insert into table like this

Insert Into Table1(col1,col2)
SELECT
A.RT.value('Admin[1]','varchar(max)'),
B.DT.value('@value','varchar(max)')
FROM @MainXml.nodes('Parent/Root') as A(RT)

cross apply A.RT.nodes('Data/Type') as B(DT)

它将在上面的 xml 上正常工作。

如果部分被删除,它将无法工作。

为什么我的查询不适用于

Declare @MainXml XML =
'<Parent>
<Root>
<Admin>admin1</Admin>
</Root>
<Root>
<Admin>admin2</Admin>
</Root>
</Parent>'

我的 XML 中的部分可能存在也可能不存在。那么如何处理这样的xml。

如果没有数据,想给它输入null。

请给我建议。

最佳答案

这应该有效:

编辑:哦,我刚刚意识到,类型节点不止一个。稍等一下...

好的,你做得很好,只需将 CROSS APPLY 更改为 OUTER APPLY...

HTH

关于mysql - 将 XML 读入 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31326808/

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