SQL如何动态的解析XML
现有下面的格式的XML,也就是说每行的数据可能会列数不一样。
<DataSet>
<ResultDataSet>
<A>DY</A>
<B>1</B>
<C>19.6;0;-0.06</C>
</ResultDataSet>
<ResultDataSet>
<A>DY3</A>
<B>1</B>
<C>19.6;0;-0.06</C>
<D>19.6;0;-0.06</D>
</ResultDataSet>
<ResultDataSet>
<F>DY5</F>
</ResultDataSet>
</DataSet>
如果采用传统的方式无法定义固定的列,也就是无法用下面的方法得到
select * into #Temp from OPENXML(@h, 'DataSet/ResultDataSet',2)
with (orgclom nvarchar(200),--列名称
aliasClom nvarchar(200),---列别名
ishide nvarchar(20)---
) 因为列名会发生变化。
但是用C#的方法,如下就能得到数据集
StringReader xmlSR = new StringReader(DataXML);
datads.ReadXml(xmlSR, XmlReadMode.InferTypedSchema);
如果用SQL的方法动态的得到数据集呢
谢谢!