我需要查找城市为芝加哥的第二个供应商。
我已经创建了以下表格。
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>