sql server - T-SQL: How to select rows as XML element -


i have table

   cost       renderedvalue    sectionname    ------------------------------------   100.00      1000.00          section1   200.00      2000.00          section2   300.00      3000.00          section3   400.00      4000.00          section4 

and want produce xml:

<root>    <section1cost>100.00</section1cost>    <section1renderedvalue>1000.00</section1renderedvalue>    <section2cost>200.00</section2cost>    <section2rendredvalue>2000.00</section2rendredvalue> </root> 

i able produce using tsql ( test table name)

select     (select cost 'cost'from test sectionname = 'section1') 'section1cost',     (select renderedvalue 'cost'from test sectionname = 'section1') 'section1renderedvalue',     (select cost 'cost'from test sectionname = 'section2') 'section2cost',     (select renderedvalue 'cost'from test sectionname = 'section2') 'section2rendredvalue' xml path(''), root('root') 

but ugly , think not optimized . can more elegant or whatever have correct?

i may have @ 30 rows in test table

this gives xml that's different (using section tags), sql script should more efficient:

select     test.sectionname [@sectionname],     test.cost [cost],     test.renderedvalue [renderedvalue]  test order test.sectionname xml path ('section'), root('sections'); 

this output script sample table provided:

<sections><section sectionname="section1"><cost>100.0000</cost><renderedvalue>1000.0000</renderedvalue></section><section sectionname="section2"><cost>200.0000</cost><renderedvalue>2000.0000</renderedvalue></section><section sectionname="section3"><cost>300.0000</cost><renderedvalue>3000.0000</renderedvalue></section><section sectionname="section4"><cost>400.0000</cost><renderedvalue>4000.0000</renderedvalue></section></sections> 

Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -