我必须找出第二个Supplier
,Chicago
作为城市。
我创建了下表。
CREATE TABLE Tb_Supplier(
XMLColumn XML)
GO
INSERT Tb_XPathQueryTable VALUES(
'<SuppliersList>
<Supplier name="Joe">
<City>Paris</City>
<Product name="Airplane"/>
<Product name="Milk"/>
<Product name="TV"/>
<Product name="Orange"/>
</Supplier>
<Supplier name="Herman">
<City>Chicago</City>
<Product name="Orange"/>
</Supplier>
<Supplier name="Bernstein">
<City>Madison</City>
<Product name="Truck"/>
<Product name="TV"/>
</Supplier>
<Supplier name="Hunter">
<City>Wausau</City>
</Supplier>
<Supplier name="Mayer">
<City>Madison</City>
</Supplier>
<Supplier name="Rosenfeld">
<City>Chicago</City>
<Product name="Computer"/>
<Product name="Book"/>
<Product name="Truck"/>
</Supplier>
</SuppliersList>');
我必须找到芝加哥作为城市的第二家供应商。
我尝试了以下代码和一些变体:
SELECT XMLColumn.query('/SuppliersList/Supplier/City[text()="Chicago"]/../Supplier[2]')
FROM Tb_Supplier
当我在没有/Supplier[2]
的情况下使用上述代码时,它会显示芝加哥的两个供应商。
输出应该有
<Supplier name="Rosenfeld">
<City>Chicago</City>
<Product name="Computer"/>
<Product name="Book"/>
<Product name="Truck"/>
</Supplier>
答案 0 :(得分:2)
这个XPath,
(/SuppliersList/Supplier[City="Chicago"])[2]
将根据要求选择第Supplier
个"Chicago"
作为City
。