【发布时间】:2018-07-24 05:43:27
【问题描述】:
我在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
我可以使用greatest 和least 函数成功地做到这一点:
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
但是,我想知道是否有更简洁的方法来做到这一点 - 使用单个函数。
【问题讨论】:
-
或许可以考虑另一种方法 - 首先使用检查约束
alter table condition add constraint chk check ( percent_decimal between 0 and 1)或类似的方式阻止数据进入那里
标签: sql oracle math select oracle12c