Ani*_*h D 2 sql oracle oracle10g oracle11g
我有,我想圆特殊要求了以下方式号码-
1.14 to 1.5
1.6 to 2
0.8 to 1
7.5 to 7.5
Run Code Online (Sandbox Code Playgroud)
也就是说,最接近0.5的倍数.
有没有办法实现这个目标?
最好的祝福
如果要舍入到最接近的0.5:
测试数据:
CREATE TABLE your_table ( value ) AS
SELECT 1.14 FROM DUAL UNION ALL
SELECT 1.6 FROM DUAL UNION ALL
SELECT 0.8 FROM DUAL UNION ALL
SELECT 7.5 FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT value,
CEIL( value * 2 ) / 2 AS rounded_value
FROM your_table
Run Code Online (Sandbox Code Playgroud)
输出:
VALUE ROUNDED_VALUE
----- -------------
1.14 1.5
1.6 2
0.8 1
7.5 7.5
Run Code Online (Sandbox Code Playgroud)
如果你想从零舍入到最接近的0.5(负数不一样),你可以使用:
SIGN(value) * CEIL(ABS(value)*2) / 2
Run Code Online (Sandbox Code Playgroud)