使用SQL查询进行XML解析

Dee*_*vin 10 xml sql sql-server

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

<Configuration>
  <ID>1000</ID>
  <ID>1001</ID>
  <ID>1002</ID>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

使用查询

SELECT  CONFIGURATION.value('/', 'varchar(200)') as SID FROM SCHEDULE 
Run Code Online (Sandbox Code Playgroud)

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

任何帮助都会得到满足.

Mik*_*son 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)
Run Code Online (Sandbox Code Playgroud)

如果你只需要一个像这个例子中的值,那么在text()节点上切碎要快得多(三次).

select
    x.i.value('.', 'int') as ID
from @xml.nodes('/Configuration/ID/text()') as x(i)
Run Code Online (Sandbox Code Playgroud)