Oracle编号以char为前导0

时间:2016-06-10 09:35:19

标签: sql oracle

我有一个计算天数的函数 从双重中选择(x * 0,5)。 我的问题是,当x = 1时,我得到.5而不是0.5。我想得到的是格式为0.5,1,1.5,2,2.5的数字.. 你能帮我个忙吗?

3 个答案:

答案 0 :(得分:0)

尝试使用:

select TO_CHAR(x * 0,5, '990,99') from dual

修改

尝试创建一个这样的函数:

create function getDecimalFormat(x in number) 
    return varchar2
as
begin
    return RTRIM(TO_CHAR(x, 'FM999999999999990.99'), '.');
end;

答案 1 :(得分:0)

如果您始终要保留小数点后一位,请使用to_char四舍五入

select TO_CHAR(28.324, '90.9') from dual;

返回

28.3

select TO_CHAR(28, '90.9') from dual;

返回

28.0

希望这会有所帮助

答案 2 :(得分:0)

我知道这很旧,但是我做了以下工作,其中x是数据类型NUMBER(20,3)

CASE WHEN x < 1 THEN '0'
  ELSE '' END
  || to_char(x)

我不希望任何尾随零,但是如果x为0.99或0.5,我确实想要一个前导零。

所以我只使用常规的to_char,如果x小于1,则添加前导零。