如题,对常规表进行查询并生成XML,生成的XML中记录数据的字符过长,下面举个例子select [float],[int],[real],[decimal] from (
select cast (6.28 as float) as [float],
cast(6.00 as int) as [int],
cast(6.18 as real) as [real],
cast(6.12 as decimal(16,2)) as [decimal]
) a for xml path('R')--生成的XML是:
'<R>
<float>6.280000000000000e+000</float>
<int>6</int>
<real>6.1799998e+000</real>
<decimal>6.12</decimal>
</R>'其中生成的XML数据中6.280000000000000e+000和6.1799998e+000字符太长
,实际需要生成的格式是
'<R>
<float>6.28</float>
<int>6</int>
<real>6.18</real>
<decimal>6.12</decimal>
</R>'
除了预先把数据转换为decimal,还有没有别的方法得到需要的结果
select cast (6.28 as float) as [float],
cast(6.00 as int) as [int],
cast(6.18 as real) as [real],
cast(6.12 as decimal(16,2)) as [decimal]
) a for xml path('R')--生成的XML是:
'<R>
<float>6.280000000000000e+000</float>
<int>6</int>
<real>6.1799998e+000</real>
<decimal>6.12</decimal>
</R>'其中生成的XML数据中6.280000000000000e+000和6.1799998e+000字符太长
,实际需要生成的格式是
'<R>
<float>6.28</float>
<int>6</int>
<real>6.18</real>
<decimal>6.12</decimal>
</R>'
除了预先把数据转换为decimal,还有没有别的方法得到需要的结果
select 6.28 as [float],
6 as [int],
6.18 as [real],
6.12 as [decimal]
) a for xml path('R')
select [float],[int],[real],[decimal] from (
select cast (6.28 as float(24)) as [float],
cast(6.00 as int) as [int],
cast(6.18 as real) as [real],
cast(6.12 as decimal(16,2)) as [decimal]
) a for xml path('R')
谈谈为啥不能预先转,为啥太长了就不行