我想将 XML 数据中的值提取到列中。
我尝试使用这个:
DECLARE @xml XML
SELECT @xml = Data FROM synergy..XMLData
SELECT
xmlData.Col.value('(column/@value)[1]','varchar(255)') AS 'Artikelen',
xmlData.Col.value('(column/@value)[2]','varchar(255)') AS 'Batchnummer',
xmlData.Col.value('(column/@value)[3]','varchar(255)') AS 'Aantal'
FROM
@XML.nodes ('//table/rows/row/columns') xmldata(Col)
但是我只得到标题,但没有数据。
这就是 XML 的样子:
<?xml version="1.0" encoding="utf-16"?>
<table>
<id>{941D5F5A-156A-4F19-A3B0-111E9825707B}</id>
<rows>
<row>
<columns>
<column name="Artikelen" value="102535.A.M2" type="System.String" />
<column name="Batchnummer" value="19D1739/133" type="System.String" />
<column name="Aantal" value="8" type="System.Int32" />
<column name="Opmerkingen" value="te weinig" type="System.String" />
<column name="Selecteren" value="1" type="System.String" />
<column name="DefaultKey" value="1" type="System.Int32" />
</columns>
</row>
</rows>
<key>DefaultKey</key>
<total>0</total>
<AddOnKey>0</AddOnKey>
<data />
<parameters />
</table>