本人为oracle菜鸟,
select  500 / 1000 from dual
显示:0.5
select  to_char(500 / 1000) from dual
显示:.5我想请教,ORACLE中如何将数字转化为字符串能够正确显示出0.5

解决方案 »

  1.   

    select to_char(500 / 1000,'0.0') from dual
      

  2.   

      1*  select to_char(500 / 1000,'999,990.9') from dual
    SQL> /TO_CHAR(50
    ----------
           0.5
      

  3.   

    select to_char(500 / 1001,'0.0000000') from dual结果: 0.4995005
    小数位可以放长一点,精度高!
      

  4.   

    select to_char(500 / 1000,'999,990.9') from dual
    //一般是这么写,比较方便,方法很多,不过要注意小数位数,保留一位小数是上面sql,两位如:
    select to_char(500 / 1000,'999,990.99') from dual,如此类推
      

  5.   

    不好意思,
    我不需要保留固定的小数select 500 / 1000 from dual
    显示:0.5
    select to_char(500 / 1000) from dual
    显示:.5例:select to_char(500 / 1000,'0.0') from dual
    这样结果是为 0.5
    但是当select to_char(5000 / 1000,'0.0') from dual
    这是的结果是 5.0 (这样是有问题的,我需要的是5不要后面的.0)但是当select to_char(5000 / 1000,'0.00') from dual
    这是的结果是 5.00 (这样是有问题的,我需要的是5不要后面的.00)
    请教该如何实现呢?
      

  6.   

    例:select to_char(500 / 1000,'0.0') from dual
    这样结果是为 0.5
    但是当select to_char(5000 / 1000,'0.0') from dual
    这是的结果是 5.0 (这样是有问题的,我需要的是5不要后面的.0)但是当select to_char(5000 / 1000,'0.00') from dual
    这是的结果是 5.00 (这样是有问题的,我需要的是5不要后面的.00)但是当select to_char(500 / 1000,'0.00') from dual
    这是的结果是 0.50(这样是有问题的,我需要先显示的是0.5而不是0.50)
    请教该如何实现呢?
      

  7.   

    select to_char(500 / 1000,'999,990.9') from dual
    上面不是有人给出了答案了吗
      

  8.   

    引用 2 楼 phoenix_99 的回复:
    引用楼主 haoren001 的回复:
    本人为oracle菜鸟,
    select 500 / 1000 from dual
    显示:0.5
    select to_char(500 / 1000) from dual
    显示:.5我想请教,ORACLE中如何将数字转化为字符串能够正确显示出0.5
    正确例:select to_char(500 / 1000,'0.0') from dual
    这样结果是为 0.5
    但是当select to_char(5000 / 1000,'0.0') from dual
    这是的结果是 5.0 (这样是有问题的,我需要的是5不要后面的.0)但是当select to_char(5000 / 1000,'0.00') from dual
    这是的结果是 5.00 (这样是有问题的,我需要的是5不要后面的.00)但是当select to_char(500 / 1000,'0.00') from dual
    这是的结果是 0.50(这样是有问题的,我需要先显示的是0.5而不是0.50)
      

  9.   

    select to_char(500 / 1001,'0.0000000') from dual
      

  10.   

    利用CASE 判断,小于1前补0
      

  11.   

    SQL> SELECT abs(5 / 100) FROM DUAL;
     
    ABS(5/100)
    ----------
          0.05
     
    SQL> SELECT abs(5 / 10) FROM DUAL;
     
     ABS(5/10)
    ----------
           0.5
     
    SQL> SELECT abs(5 / 1) FROM DUAL;
     
      ABS(5/1)
    ----------
             5
     
    SQL> SELECT abs(5 / 0.1) FROM DUAL;
     
    ABS(5/0.1)
    ----------
            50
      

  12.   


    select rtrim(to_char(50/1000, 'fm9990.99'),'.') from dual;
    0.05
    select rtrim(to_char(500/1000, 'fm9990.99'),'.') from dual;
    0.5
    select rtrim(to_char(5000/1000, 'fm9990.99'),'.') from dual;
    5
      

  13.   

    15楼的小数点后面位数太少了,
    select RTRIM(to_char(500/1000, 'fm99999999999999999990.9999999999999999999999'),'.') from dual;