我想解码XML数据列。
我的表格(dailyReports
)有一列col2
,其中包含多个报告
(col1) (col2)
reportDate xmldata
20130101 <t><m><s>234</s><ist>istanbul</ist><ino>17060</ino></m></t> --1 xml rep.
20130102 <t><m><s>235</s><ist>izmir</ist><ino>12345</ino></m></t>... --3 xml rep
20130103 <t><m><s>220</s><ist>ankara</ist><ino>98765</ino></m></t>... --7 xml rep.
20130104 <t><m><s>234</s><ist>istanbul</ist><ino>17060</ino></m></t>... --4 xml rep.
20130105 <t><m><s>138</s><ist>edirne</ist><ino>17171</ino></m></t>... --9 xml rep.
...
我想导出数据; (每个报告应该换一个新的行)
col1 col2 col3 col4
20130101 234 ist 17060 (first day 1 xml rep.)
20130102 235 izmir 12345 (second day 3 xml rep.)
20130102 220 ankara 98765 (second day 3 xml rep.)
20130102 138 edirne 17171 (second day 3 xml rep.)
...
第3天为7行
第四天4行
第五天9行
..
答案 0 :(得分:0)
使用节点运算符XQuery:
SELECT
reportDate,
T.t.value('(m/s)[1]', 'int'),
T.t.value('(m/ist)[1]', 'varchar(50)'),
T.t.value('(m/ino)[1]', 'int')
FROM dailyReports D
CROSS APPLY D.xmldata.nodes('t') T(t)