例如我有这些值:
9.0001
8.1556
1.0000
9.7345
2.0003
我希望我的结果是 -
9.5
8.5
1.0
9.5
2.5
因此范围内的任何十进制值(介于0.0001 - 0.9999之间)应更改为.5
答案 0 :(得分:1)
您只需使用floor()
和ceil()
功能即可完成此操作:
select floor(col) + (ceil(col) - floor(col)) / 2
from your_table
要了解此公式的工作原理,请考虑值9.0001
:
floor(9.0001) + (ceil(9.0001) - floor(9.0001)) / 2
9 + (10 - 9) / 2
9 + 1/2
9.5
这是你所期望的。另请注意,对于1.0000
,该值将保持1.0000
,因为在这种情况下,上限等于发言权。
答案 1 :(得分:0)
假设值始终为正值,您可以使用:
to_char(case trunc(x) = x then x else trunc(x) + 0.5 end, '99990D0')
如果没有,请添加另一个案例,根据符号进行减法或加法。
答案 2 :(得分:0)
我认为你应该尝试
SELECT ROUND(15.193,1) ...