【发布时间】:2017-10-06 12:05:33
【问题描述】:
我正在尝试查询无类型 XML 数据的 XML 字段以进入存储过程。
字段有多个同名元素,每个元素有多个属性。查询需要返回 c 的值,其中 r 的值(字段中的唯一值)是已知的。 例如。在下面的 XML 字段中返回属性 c 的值,其中属性 r 的值是“FGH”。 r 的每个值都是唯一的,因此只会返回一行。
<Assets>
<Cars>
<Car r="ABC" c="Nissan" t="petrol"/>
<Car r="FGH" c="VW" t="petrol"/>
<Car r="XYZ" c="Mini" t="diesel"/>
</Cars>
</Assets>
我尝试过的查询的编辑版本是:
USE MyDB
DECLARE
@ASSETS XML = null,
@car nvarchar(50)
SELECT @ASSETS = ASSETS FROM MyTable WHERE ID = 26800
SELECT @car = @ASSETS.value('(//*/*/@FGH', 'nvarchar(max)') ;
我可以看出这是不对的,但完全卡住了。
【问题讨论】:
标签: xml tsql sql-server-2008-r2