TechWeb-技术社区 » 程序开发 » 使用SQL操作XML


2008-8-21 09:45 abe
使用SQL操作XML

DECLARE @xmlData XML
+TfuT+bX9hK,^
*d"a^7C h"Xz SET @xmlData = '<SheetData>
WOD,]3Xyi?      <row ForecastType="Overwrite" Jan="1" Feb="2" Mar="3" Apr="4" May="5" />
2DZNe-Et(TG;K!ik      <row ForecastType="Overwrite" Jan="10" Feb="20" Mar="30" Apr="40" May="50" />,_fb VgIY!e4f{(g
    </SheetData>'
y%ct!~7u,{D-M,kL,@ 7l9W,m)Jm.nb
select @xmlData:z8td.D+z ?(X7R
Z Q:?MkO
DECLARE @tmpDT TABLE(ForecastType NVARCHAR(50),m}mlR _
      Jan NVARCHAR(50),*o,L'ma4J&d+z
      Feb NVARCHAR(50),
a0P P+M*p-?       Mar NVARCHAR(50),
*w4WV [C,|_       Apr NVARCHAR(50),
4kd+F0o8Z^3];a!J0A       May NVARCHAR(50))
~_/l#}x7SX %i~#bXf}
INSERT @tmpDT n0\)D-Py-imn,xv
SELECT T.c.value('@ForecastType', 'NVARCHAR(50)') as ForecastType,#Xb M_y0gv%o"W,Y
       T.c.value('@Jan', 'NVARCHAR(50)') as Jan,
v)z-TN5Q#X-Y        T.c.value('@Feb', 'NVARCHAR(50)') as Feb,
(H,`,TMH        T.c.value('@Mar', 'NVARCHAR(50)') as Mar, O8CsRY;iK'e6lmP
       T.c.value('@Apr', 'NVARCHAR(50)') as Apr,&s*wO:P-JT,l
       T.c.value('@May', 'NVARCHAR(50)') as May*sK2~Lg D
FROM @xmlData.nodes('/SheetData/row') T(c)
"k%[K?3Ixv
X C#nO%m SELECT * FROM @tmpDT)|uc O-`BtR$P;J
?-`6X&[y
SET @xmlData = (SELECT ForecastType, Jan as January, Feb, Mar, Apr, May FROM @tmpDT as row FOR XML AUTO, ROOT('SheetData'))~ UI5S y
r.D7e\(r)Q
SELECT @xmlData

页: [1]
查看完整版本: 使用SQL操作XML


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.