表中有以下XML节点。但当我提取数据时,我无法正确地读取它
SELECT Data.value('(/*//Plans/Plan/Coverages/Coverage/Answers/Entry[@key="NumberOfHoldDays"]/value)[1]', 'nvarchar(max)') as PLANA
,Data.value('(/*//Plans/Plan/Coverages/Coverage/Answers/Entry[@key="NumberOfHoldDays"]/value)[2]', 'nvarchar(max)') AS PLANB
,Data.value('(/*//Plans/Plan/Coverages/Coverage/Answers/Entry[@key="NumberOfHoldDays"]/value)[3]', 'nvarchar(max)') AS PLANC
FROM Maintenance
如果我像上面那样读取XML数据,
SNO PLan A PLan B Plan C
1 11 22 33
2 NULL 44 55
Output for above example :
SNO PLan A PLan B Plan C
1 11 22 33
2 NULL 44 55
But now for the above query it shows as below :
SNO PLan A PLan B Plan C
1 11 22 33
2 44 55 NULL
XML示例如下:
<Plans>
<Plan>
<Coverages>
<Coverage>
<Answers>
<Entry key="NumberOfHoldDays" type="System.String">
<value>5</value>
</Entry>
</Answers>
</Coverage>
</Coverages>
<ID>1</ID>
</Plan>
<Plans>
<Plan>
<Coverages>
<Coverage>
<Answers>
<Entry key="NumberOfHoldDays" type="System.String">
<value>55</value>
</Entry>
</Answers>
</Coverage>
</Coverages>
<ID>2</ID>
</Plan>
<Plans>
<Plan>
<Coverages>
<Coverage>
<Answers>
<Entry key="NumberOfHoldDays" type="System.String">
<value>50</value>
</Entry>
</Answers>
</Coverage>
</Coverages>
<ID>3</ID>
</Plan>
</Plans>
如何根据id标签读取XML以获得我正在使用的、但不起作用的适当值