sql以0.5向上取整?

a578452523 2013-01-21 02:20:52
sql server 2000中,我想以0.5向上取整,
如 :
0.0 取整后为 0,
0.0<@x<=0.5 取整后为 0.5,
0.5<@x<=1 取整后为 1,
1<@x<=1.5 取整后为 1.5
.......
以此类推。。

怎么实现?望越简洁越好!
...全文
1459 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
我的tcl 2013-01-21
  • 打赏
  • 举报
回复
select case when @t=0.0 then CAST(@t As int) when ROUND(@t-0.1,0)-CAST(@t-0.1 as int)=0 then ROUND(@t-0.1,0)+0.5 when ROUND(@t-0.1,0)-CAST(@t-0.1 as int)=1 then ROUND(@t,0) end
Vidor 2013-01-21
  • 打赏
  • 举报
回复
引用 楼主 a578452523 的回复:
sql server 2000中,我想以0.5向上取整, 如 : 0.0 取整后为 0, 0.0<@x<=0.5 取整后为 0.5, 0.5<@x<=1 取整后为 1, 1<@x<=1.5 取整后为 1.5 ....... 以此类推。。 怎么实现?望越简洁越好!
select ceiling(@x*2)/2
哥眼神纯洁不 2013-01-21
  • 打赏
  • 举报
回复

select ceiling(@number*2)/2
不知道2000支持ceiling函数不...
a578452523 2013-01-21
  • 打赏
  • 举报
回复
引用 6 楼 fangzh110 的回复:
select case ROUND(@t-0.1,0)-CAST(@t as int) when 0 then ROUND(@t-0.1,0)+0.5 else ROUND(@t,0) end
这个样子大部分倒是解决了,但 临界点的数字 就不对了,比如:0 进去 ,或 1进去 ,不过还是谢谢你了
我的tcl 2013-01-21
  • 打赏
  • 举报
回复
select case ROUND(@t-0.1,0)-CAST(@t as int) when 0 then ROUND(@t-0.1,0)+0.5 else ROUND(@t,0) end
我的tcl 2013-01-21
  • 打赏
  • 举报
回复
select case ROUND(@t,0)-CAST(@t as int) when 0 then ROUND(@t,0)+0.5 else ROUND(@t,0) end
a578452523 2013-01-21
  • 打赏
  • 举报
回复
引用 3 楼 sc273607742 的回复:
SQL code?1select floor(@number)+case when @number-floor(@number)>=0.5 then 1 else 0.5 end 2008行,不知道2000行不
不行啊,呜呜。。,@number=0时候 应该是 0 的,但运行成0.5了,@number=0.5时候 应该=0.5 的,但成1了, 强力思索中。。。。。
哥眼神纯洁不 2013-01-21
  • 打赏
  • 举报
回复

select floor(@number)+case when @number-floor(@number)>=0.5 then 1 else 0.5 end 
2008行,不知道2000行不
a578452523 2013-01-21
  • 打赏
  • 举报
回复
不对啊,我是以 0.5 为一个单位 进行 取整 的???
我的tcl 2013-01-21
  • 打赏
  • 举报
回复
select round(@number,0)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧