Sql 从XML属性获取Id列
我有一个包含ProductId列和string列的表。string列保存xml字符串,如下所示:Sql 从XML属性获取Id列,sql,xml,Sql,Xml,我有一个包含ProductId列和string列的表。string列保存xml字符串,如下所示: <Attributes><ProductVariantAttribute ID="149"><ProductVariantAttributeValue><Value>224</Value></ProductVariantAttributeValue></ProductVariantAttribute></Att
<Attributes><ProductVariantAttribute ID="149"><ProductVariantAttributeValue><Value>224</Value></ProductVariantAttributeValue></ProductVariantAttribute></Attributes>
<Attributes><ProductVariantAttribute ID="150"><ProductVariantAttributeValue><Value>225</Value></ProductVariantAttributeValue></ProductVariantAttribute></Attributes>
224
225
但此列不是XML列
我想做的是查询此列,并根据值标记之间的值获取行的ProductId。所以我有225个,但我想得到该列中的ProductId值
有没有办法做到这一点?谢谢 试试这个:
select d.value('(//ProductVariantAttribute/@ID)[1]', 'int') val
from (select id, cast(xmlstring as xml) data from xmldata) d
cross apply data.nodes('//ProductVariantAttributeValue[Value[1] = 225]') data(d)