【发布时间】:2015-07-01 00:16:55
【问题描述】:
Declare @MainXml XML =
'<?xml version="1.0" encoding="utf-8"?>
<result>
<cash number="10">
<account amt="11.00" status="Closed"/>
<account amt="12.00" status="Closed"/>
</cash>
<cash number="20">
<account amt="21.00" status="Closed"/>
<account amt="22.00" status="Closed"/>
</cash>
</result>'
我正在使用以下查询读取数据
Declare @Innerxml xml;
SELECT @Innerxml = T.c.query('<result>{/result/cash}</result>')
FROM @MainXml.nodes('result') T(c)
SELECT
Result.Claim.value('(./@number)[1]','varchar(max)') as C1,
Result.Claim.value('(./@amt)[1]','varchar(max)') as C2,
Result.Claim.value('(./@status)[1]','varchar(max)') as C3
From @Innerxml.nodes('/result/cash/account') Result(Claim)
我想读取 xml 并存储在 DB 中,如下所示。
C1 C2 C3
----------------
10 11.00 Closed
10 12.00 Closed
20 21.00 Closed
20 22.00 Closed
但我的查询在 C1 列中只返回 NULL 请在这里帮助我。提前致谢
【问题讨论】:
标签: sql-server xml sql-server-2008 xml-parsing sqlxml