小编典典

使用SQL查询进行XML解析

sql

我正在尝试在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格式。

任何帮助都将得到应用。


阅读 237

收藏
2021-03-23

共1个答案

小编典典

使用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)
2021-03-23