Oracle

时间:2017-06-22 12:27:53

标签: sql oracle oracle11g oracle10g

我有一个特殊的要求,我想以下面的方式围绕向上数字 -

   1.14 to 1.5
    1.6 to 2
    0.8 to 1
    7.5 to 7.5

即最接近0.5的倍数。

有没有办法实现这个目标?

最好的问候

2 个答案:

答案 0 :(得分:8)

如果你想要四舍五入到最接近的0.5:

测试数据

'/path_to_directory_you_want_to_save/file_name.pdf'

<强>查询

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;

<强>输出

SELECT value,
       CEIL( value * 2 ) / 2 AS rounded_value
FROM   your_table

如果你想从零到最接近的0.5(负数不一样),你可以使用:

VALUE ROUNDED_VALUE
----- -------------
 1.14           1.5
  1.6             2
  0.8             1
  7.5           7.5

答案 1 :(得分:0)

这是一种方式:

select floor( val * 2 + 1) / 2