Comment faire pour que SQL Server FOR XML formate le flotteur efficacement

Lorsque j'utilise FOR XML pour extraire les valeurs de type float de ma database SQL, il les met en forme au format scientifique, comme ceci:

 <foo bar="0.00000000e+000"/> 

Je préférerais dire "0".

Comment puis-je le persuader de le faire?

CAST est votre ami

 declare @t table (bar float); insert @t values (0); select bar from @t for xml path('foo'); ------------------------------------------------ | <foo><bar>0.000000000000000e+000</bar></foo> | declare @t table (bar float); insert @t values (0); select CAST(bar as decimal(10,2)) bar from @t for xml path('foo'); -------------------------------------------- | <foo><bar>0.00</bar></foo> | declare @t table (bar float); insert @t values (0); select CAST(bar as bigint) bar from @t for xml path('foo'); -------------------------------------------- | <foo><bar>0</bar></foo> | 

CAST est votre ennemi. Cela peut réduire considérablement les performances. Lisez ceci .