2013-06-21 4 views
0

XML 데이터 열을 디코딩하고 싶습니다.SQL Server 2005 xmldata decode

내 테이블 (dailyReports)는 하나 개 이상의 보고서 나 데이터를 내보낼 싶습니다

(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. 
... 

을 포함하는 열 col2있다; ..

다섯째 날
대한 넷째 날 제 하루 ...

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.) 


9 라인
4 라인
7 라인 (각 리포트는 새로운 행으로 이동한다)

답변

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)