Mysql 将XML读入SQL表
我正在读取xml并将其写入sql表 要将下面的xml插入表中吗 交叉应用A.RT.nodes('数据/类型')作为B(DT) 它可以很好地处理上述xml 如果部分被删除,它将无法工作 为什么我的查询不适用于Mysql 将XML读入SQL表,mysql,sql-server,xml,rdbms,Mysql,Sql Server,Xml,Rdbms,我正在读取xml并将其写入sql表 要将下面的xml插入表中吗 交叉应用A.RT.nodes('数据/类型')作为B(DT) 它可以很好地处理上述xml 如果部分被删除,它将无法工作 为什么我的查询不适用于 Declare@MainXml= ' 管理员1 管理员2 ' 我的XML中的部分可能存在,也可能不存在。那么如何处理这样的xml呢 如果没有数据,则要为其输入null 请推荐我。这应该可以: 编辑:哦,我刚刚意识到,有不止一种类型的节点。等一下 好的,你做得很好,只需将交叉应用更改为外部应
Declare@MainXml=
'
管理员1
管理员2
'
我的XML中的部分可能存在,也可能不存在。那么如何处理这样的xml呢
如果没有数据,则要为其输入null
请推荐我。这应该可以:
编辑:哦,我刚刚意识到,有不止一种类型的节点。等一下
好的,你做得很好,只需将交叉应用更改为外部应用
HTH请修复标记以反映您正在使用的RDBMS(MySQL或MS SQL Server)。
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>'
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)
Declare @MainXml XML =
'<Parent>
<Root>
<Admin>admin1</Admin>
</Root>
<Root>
<Admin>admin2</Admin>
</Root>
</Parent>'