SQL 加上ceiling函数就全部自动取整.好奇怪,我希望的结果是 sumquan 列 当 case when o时 , 是小数.

ta021 列 为 decimal(18,4) 类型

select a.ta001,a.ta002,d.cinvcode,case b.ifint when 0 then a.ta021*1.0000*d.de1/d.de2*(1.0000+d.de3/100.0000-d.de4/100.0000)  
when 1 then ceiling(a.ta021*1.0000*d.de1/d.de2*(1.0000+d.de3/100.0000-d.de4/100.0000)) end as sumquan,
a.ta003,a.lay
from Cmocta a left join cbom c on a.cinvcode = c.cinvcode left join cbomson d on c.bomid=d.bomid  
left join ainventory b on d.cinvcode=b.cinvcode
where a.ta003 between 'G1204-0001' and 'G1204-0001' 

 
以上SQL语句 sumquan 全部自动取整了,好奇怪.

如果换成以下SQL语句,是会显示小数的,

select b.ifint,case b.ifint when 0 then a.ta021*1.0000*d.de1/d.de2*(1.0000+d.de3/100.0000-d.de4/100.0000)  
when 1 then ceiling(2) end as sumquan
from Cmocta a left join cbom c on a.cinvcode = c.cinvcode left join cbomson d on c.bomid=d.bomid  
left join ainventory b on d.cinvcode=b.cinvcode
where a.ta003 between 'G1204-0001' and 'G1204-0001'  
这个SQL语句怎么修改呢,让它该显示小数部分就显示小数部分,该取整的时候就取整呢.

森栏
浏览 949回答 4
4回答

噜噜哒

这个无非是SQL内置的一个函数,俗称天花板函数,print(ceiling(3.1));它会自动向上取靠近他的整数4.

RISEBY

用switch...case操作,类似于C#中的switch...case的功能

红颜莎娜

不是吧,sql 中也有switch case ,真不可思议

潇潇雨雨

@zhengyingcan: 呵呵,数据库编程嘛,也很强大的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server