我是使用 WITH XMLNAMESPACES 的新手,并且在使用 exists() 方法产生结果时遇到了一些困难。我查询的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 元素的行。有什么建议么?
谢谢。