使用SQL查询进行XML解析

时间:2011-01-12 14:29:09

标签: sql sql-server xml

我试图在sql server中解析下面的xml来获取所有3个ID

<Configuration>
  <ID>1000</ID>
  <ID>1001</ID>
  <ID>1002</ID>
</Configuration>

使用查询

SELECT  CONFIGURATION.value('/', 'varchar(200)') as SID FROM SCHEDULE 

我得到的结果为100010011002 但我希望以列或CSV格式显示结果。

任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:8)

使用MS SQL Server,这将为您提供行。

declare @xml as xml
set @xml = 
'<Configuration>
  <ID>1000</ID>
  <ID>1001</ID>
  <ID>1002</ID>
</Configuration>'

select
    x.i.value('.', 'int') as ID
from @xml.nodes('/Configuration/ID') as x(i)

如果你只需要一个像这个例子那样的值,那么在text()节点上碎片要快很多(三次)。

select
    x.i.value('.', 'int') as ID
from @xml.nodes('/Configuration/ID/text()') as x(i)