我有类似的XML
<root sxfversion="1.6" gendate="2020-01-23 16:16:40">
<products>
<p>
<id>8244</id>
<name>
NAME OF ARTICLE
</name>
<reference>622801</reference>
<ean13>3232870162282</ean13>
<stock>17</stock>
<price>
<tax>23</tax>
<netto>9.2</netto>
<brutto>11.32</brutto>
</price>
例如,我尝试进行查询:
SELECT
*
FROM
OPENXML(@int, '/root/products/p', 2)
WITH
(
id int,
name varchar(40),
ean13 varchar(20)
)
并且有效。
现在我想使用另一个(嵌套的)列-价格(税,netto,brutto)。
我可以像这样修改查询(执行up)来做到这一点,它也可以工作:
SELECT
*
FROM
OPENXML(@int, '/root/products/p/price', 2)
WITH
(
id int '../id',
name varchar(40) '../name',
ean13 varchar(20) '../ean13',
netto varchar(10),
brutto varchar(10),
tax varchar(10)
)
但是为什么这样的东西(钻down不能正常工作?它会将每行的价格值复制到所有行。可以钻down吗?
SELECT *
FROM OPENXML(@int, '/root/products/p', 2)
WITH ( id varchar(10),
name varchar(40),
ean13 varchar(20),
netto varchar(10) '../p/price/netto',
brutto varchar(10) '//price/brutto',
tax varchar(10) '//price/tax')