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
ZQ:?MkO
DECLARE @tmpDT TABLE(ForecastType NVARCHAR(50),m}ml R
_
Jan NVARCHAR(50),*o,L'ma4J&d+z
Feb NVARCHAR(50),
a0PP+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, O8CsR Y;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