0

我是使用 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 元素的行。有什么建议么?

谢谢。

4

0 回答 0