Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从XML属性获取Id列_Sql_Xml - Fatal编程技术网

Sql 从XML属性获取Id列

Sql 从XML属性获取Id列,sql,xml,Sql,Xml,我有一个包含ProductId列和string列的表。string列保存xml字符串,如下所示: <Attributes><ProductVariantAttribute ID="149"><ProductVariantAttributeValue><Value>224</Value></ProductVariantAttributeValue></ProductVariantAttribute></Att

我有一个包含ProductId列和string列的表。string列保存xml字符串,如下所示:

<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)