具体来说,在名为metadata的列中给出以下XML内容,如何检索具有特定名称属性的节点的值?
在这种情况下,我在与int16_t标记关联的值和名称“filterIndex”之后
<root version="1">
<class derived_type="FilterInfo" name="FilterInfo">
<string name="filterName" length="3" value="mt8" />
<string name="filterText" length="3" value="SVR" />
<string name="filterTable" length="11" value="CML_5_1_mt8" />
<bool name="userDefined" value="true" />
<bool name="multiResp" value="false" />
<enumeration name="filterType" value="1" />
<enumeration name="filterCategory" value="1" />
<vector name="options" count="1">
<class derived_type="OptionInfo" name="V0">
<int16_t name="optionIndex" value="1" />
<string name="optionName" length="3" value="mt8" />
<string name="optionText" length="3" value="SVR" />
<string name="optionTable" length="11" value="CML_5_1_mt8" />
</class>
</vector>
<GUID name="primaryKey" value="fe66b60f-468a-4f0e-be80-0055e20baa35" />
<int16_t name="filterIndex" value="1080" />
</class>
</root>
THX ++
杰里。
答案 0 :(得分:5)
这样的东西?
SELECT
metadata.value('(/root/class/int16_t/@value)[1]', 'int') AS 'int16_value'
FROM
dbo.YourTable