我正在使用MySQL 5.5版。我想拆分XML值并将值插入到其他表中。
这是我的XML:
<Xml><Student><Id>1</Id><Marks>275</Marks><Rank>2</Rank></Student></Xml>
我希望我的结果成为:
Id 1
Marks 275
Rank 2
许多人建议使用ExtractValuefunction
来获取分割值。
当我使用ExtractValuefunction
时,我会编写如下的查询
EXTRACTVALUE(Xml,'/Xml/Student/Id') AS ListOfValues
EXTRACTVALUE(Xml,'/Xml/Student/Marks') AS ListOfValues
EXTRACTVALUE(Xml,'/Xml/Student/Rank') AS ListOfValues
我也无法在结果中获取节点值。
如何获得正确的结果。帮我解决这个问题。谢谢你的建议。
答案 0 :(得分:1)
Declare @xmldata text;
set @xmldata = <Xml><Student><Id>1</Id><Marks>275</Marks><Rank>2</Rank></Student></Xml>
SELECT 'Id' AS ColName,EXTRACTVALUE(@xmldata, '/Xml/Student/@Id') AS Val
UNION ALL
SELECT 'Marks', EXTRACTVALUE(@xmldata, '/Xml/Student/@Marks')
UNION ALL
SELECT 'Rank',EXTRACTVALUE(@xmldata, '/Xml/Student/@Rank')
希望这可以帮助你...