说我想在FOR XML EXPLICIT查询中使用以下数据:
ItemId: 14528097
ProductId: 7575
Revenue: 12.95
PerItemPrice: 12.95
Quantity: 1
现在,当我编写查询时,我得到以下输出:
<ItemId>14528097</ItemId>
<ProductId>7575</ProductId>
<Revenue>12.9500</Revenue>
<PerItemPrice>1.295000000000000e+001</PerItemPrice>
<Quantity>1.000000000000000e+000</Quantity>
有没有办法让它看起来像这样:
<ItemId>14528097</ItemId>
<ProductId>7575</ProductId>
<Revenue>12.9500</Revenue>
<PerItemPrice>12.95</PerItemPrice>
<Quantity>1</Quantity>
或者我运气不好?
答案 0 :(得分:2)
似乎a1ex07打败了我的答案,但我怀疑您使用FLOAT
或REAL
(有意或无意),我建议始终使用DECIMAL
数字值不明确需要FLOAT
/ REAL
的属性。
答案 1 :(得分:0)
此查询工作正常,因此请确保您的类型已正确投放:
declare @t table (
ItemId varchar(10),
ProductId varchar(5),
Revenue decimal(9,2),
PerItemPrice decimal(9,2),
Quantity int)
insert into @t select '14528097','7575',12.95,12.95,1
select 1 as 'Tag', NULL as 'Parent',
NULL as 'Items!1!',
NULL as 'Item!2!Item',
NULL as 'Item!2!Revenue'
union
select 2, 1, NULL, ItemId, Revenue
from @t for xml explicit
答案 2 :(得分:0)
对比使用浮点列与十进制列的结果。
...浮法
create table #testfloat (a float)
insert into #testfloat values (1)
select * from #testfloat for xml auto
drop table #testfloat
<a="1.000000000000000e+000"/>
现在有了十进制类型......
create table #testdec (a decimal(5,2))
insert into #testdec values (1)
select * from #testdec for xml auto
drop table #testdec
<a="1.00"/>