2011-01-12 99 views
10

我試圖使用查詢XML與SQL查詢解析

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

我得到的結果爲100010011002 解析SQL Server中的以下XML把所有的3個IDS

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

但我希望以列或CSV格式獲得結果。

任何幫助將appriciated。

+0

您使用的是哪種數據庫服務器? – Nekresh 2011-01-12 14:31:51

回答

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)