34,593
社区成员
发帖
与我相关
我的任务
分享
declare @i decimal(18,1) =12.4
select case when @i-floor(@i)<0.5 then floor(@i)+0.5 else CEILING(@i) end
declare @i decimal(6,1)
set @i=1.5
select case when @i-floor(@i)>0.5 then floor(@i)+1 else floor(@i)+0.5 end
set @i=1.6
select case when @i-floor(@i)>0.5 then floor(@i)+1 else floor(@i)+0.5 end
/*
----------
1.5
(所影响的行数为 1 行)
----------
2.0
(所影响的行数为 1 行)
*/
declare @t table(i dec(9,2))
insert @t select 9.25
union all select 9.75
select case when i-floor(i)>0.5 then floor(i)+1 else floor(i)+0.5 end from @t
/*
---------------------------------------
9.5
10.0
(2 行受影响)
*/
case when @i-floor(@i)>0.5 then floor(@i)+1 else floor(@i)+0.5 end