我有一个在数据库中有XML数据的需求,我需要从数据库中提取行和列的形式。我的XML就像
<Equipment>
<EquipmentRecord>
<EquipmentType>E</EquipmentType><MfgName>APPLE iPH564WHT</MfgName><Model>885909600205</Model><ActDate>10/26/2012</ActDate><CancelDate />
</EquipmentRecord>
<EquipmentRecord>
<EquipmentType>E</EquipmentType><MfgName>SAMSUNG D710 HANDSET KIT</MfgName><Model>SPHD710KIT</Model><ActDate>09/04/2012</ActDate><CancelDate>10/01/2012</CancelDate>
</EquipmentRecord>
<EquipmentRecord>
<EquipmentType>E</EquipmentType><MfgName>BLACKBERRY 9670 PURPLE</MfgName><Model>SPRIM9670P</Model><ActDate>08/22/2012</ActDate><CancelDate>08/25/2012</CancelDate>
</EquipmentRecord>
</Equipment>
Run Code Online (Sandbox Code Playgroud)
我希望数据像
EquipmentType MfgName Model ActDate CancelDate
E APPLE iPH564WHT 885909600205 10/26/2012
E SAMSUNG D710 HANDSET KIT SPHD710KIT 09/04/2012 10/01/2012
E BLACKBERRY 9670 PURPLE SPRIM9670P 08/22/2012 08/25/2012
Run Code Online (Sandbox Code Playgroud)
在SQL Server中有什么简单的方法吗?
我尝试了并且成功了
DECLARE @doc XML
SET @doc = 'above XML'
CREATE TABLE #EquipmentType (ID INT IDENTITY(1,1), EquipmentType varchar(100))
INSERT INTO #EquipmentType(EquipmentType)
SELECT EquipmentDetails.value('.','varchar(100)') as EquipmentType
FROM @doc.nodes('/Equipment/EquipmentRecord/EquipmentType/.') Equipment(EquipmentDetails)
CREATE TABLE #MfgName (ID INT IDENTITY(1,1), …Run Code Online (Sandbox Code Playgroud)