确保百分比介于0和1之间(包括单个函数)

时间:2018-02-13 19:03:50

标签: sql oracle math select oracle12c

我在condition表中有百分比:

create table condition (percent_decimal number(3,2));
insert into condition values (-0.01);
insert into condition values (0.1);
insert into condition values (1);
insert into condition values (1.1);
commit;

PERCENT_DECIMAL
---------------
          -0.01
             .1
              1
            1.1

我想选择值,但要修改它们以将它们显示为0到1(含)之间的百分比:

  • -0.01转换为0
  • 保持.1原样
  • 保持1原样
  • 1.1转换为1

我可以使用greatestleast函数成功完成此操作:

select
    percent_decimal,
    least(1,greatest(0,percent_decimal)) as percent_modified
from
    condition

PERCENT_DECIMAL PERCENT_MODIFIED
--------------- ----------------
          -0.01                0
             .1               .1
              1                1
            1.1                1

但是,我想知道是否有一种更简洁的方法 - 只需一个功能。

1 个答案:

答案 0 :(得分:4)

您可以使用单个案例表达式:

ViewController

虽然更长,但没有使用任何功能,而且我觉得后来有人会更清楚你的逻辑是什么。