我是使用WITH XMLNAMESPACES的新手,并且使用exist()方法生成结果有些困难。我查询的xml列如下:
<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is
available
</Maintenance>
</Features>
</ProductDescription>
</Root>
我试图在结果集中返回一个xml命名空间,从Microsoft的修改示例开始。但是,当我执行以下查询时,我得到0结果。但是,从WHERE子句中删除别名确实会产生结果。
WITH XMLNAMESPACES ('uri' as pd)
SELECT
Trans_ID,
Bike_Sales.query
(
'<ProductDescription Product_ID = "{ sql:column("Trans_ID")}"/>'
) AS Result
FROM XML_EXAMPLE
WHERE
Bike_Sales.exist
(
'/pd:Root/ProductDescription[(pd:Features)]'
) = 1
所以基本上我只想返回Features元素所在的行。有什么建议吗?
感谢。