【发布时间】:2019-10-02 11:28:59
【问题描述】:
如何从 product-lineitems 返回数据。我的意思是:数量,数量单位
我希望:
Product-Id unit quantity tax-rate
0001 BOX 1.0 0.23
0002 PCS 1.0 0.23
我正在尝试这样:但它返回重复的行:(
WITH XMLNAMESPACES(DEFAULT N'www address')
SELECT o.value(N'(current-order-no/text())[1]',N'varchar(10)') AS OrderNo
, n.value(N'(quantity/text())[1]',N'varchar(10)') AS Qty
, u.value(N'@unit',N'varchar(10)') AS Unit
FROM
dbSupply.dbo.MyXmlTable t
CROSS APPLY
t.XMLData.nodes(N'/orders/order') A(o)
OUTER APPLY
A.o.nodes(N'product-lineitems/product-lineitem') B(n)
OUTER APPLY
A.o.nodes(N'product-lineitems/product-lineitem/quantity') C(u)
<orders xmlns="www address">
<order>
<order-date>2019-09-05</order-date>
<created-by>storefront</created-by>
<original-order-no>000001</original-order-no>
<currency>USD</currency>
<taxation>gross</taxation>
<invoice-no>0099999</invoice-no>
<product-lineitems>
<product-lineitem>
<product-id>0001</product-id>
<quantity unit="BOX">1.0</quantity>
<tax-rate>0.23</tax-rate>
</product-lineitem>
<product-lineitem>
<product-id>0002</product-id>
<quantity unit="PCS">1.0</quantity>
<tax-rate>0.23</tax-rate>
</product-lineitem>
</product-lineitems>
</order>
</orders>
【问题讨论】:
-
那么您在这里的预期结果是什么?我希望你得到多行,你有多个
product-lineitem元素。 -
嗨,Thomas TI,您刚刚发现,新问题最吸引人 ;-)
-
我还有一个 :P 但我要等 90 分钟 ;(
标签: sql sql-server xml xml-parsing