3
我剛纔發現(必要時)TSQL具有一些功能,可以從包含XML的列中提取數據。我有一個包含XML數據的Sql Server列(儘管列類型不是xml ...它是varchar)。我應該從列中提取一部分數據。簡化條目將是這個樣子:在Sql Server列中從XML中提取數據
declare @Table as table(id char(1), datacolumn xml)
insert into @table
select 'a', '<root><vnode v="5" /><vnode v="8" /></root>'
insert into @table
select 'b', '<root><vnode v="7" /></root>'
id datacolumn
--- -----------------------------------------
a <root><vnode v="5" /><node v="8" /></root>
b <root><vnode v="7" /></root>
所以,我想拿出一個查詢,將沿着線返回的東西:我已經得到的
id data
--- ----
a 5
a 8
b 7
點我可以得到一些信息......但我錯過了一些概念。
select id, T.c.value('node[1]', 'varchar(100)') mdata
from @table
cross apply datacolumn.nodes('/root') AS T(c)
問題:
- 這將讓我這個虛擬節點(裏面是空的),裏面的價值,但我需要的屬性,標有「V」的值。因爲我在那裏[1],所以我得到了第一個節點......但我想要所有這些節點......但還沒有爲這個概念提供幫助。
我知道這應該是簡單的,我會錯過一些基本的東西!謝謝! – Beska 2010-01-27 15:54:50