需求: 把数据里number(38,2)的数据包括符合转化为字符
如 123        ->   123
   123.1      ->   123.1
   123.45     ->  123.45 
   123.3      ->  123.3
    0.1       ->  0.1
相应地 -123   ->  -123 
       -123.1 ->  -123.1
       -123.45->  -123.45 
       -123.3 ->  -123.3
       -0.1   ->  -0.1
请教各位高手们有没有好的解决办法,小女子这厢有分啦!
实在不行123.1->123.10也行
直接用to_char(x)是不可以的!

解决方案 »

  1.   

    找到办法了。
    select(Round(TO_char(X,'fm99999990.99'),2))
    from dual
      

  2.   

    不用这么麻烦啊 直接 select '' || number from dual 就行啦
      

  3.   

    以上说的都是错.当有0.1, 0.001 时,to_char(X)就会变成 .1,  .001应该这样做, tableA colA
    select (case colA < 1 then '0' || to_char(colA) else to_char(colA)) end 
    from tableA;
      

  4.   

    我的那个方法没有把0.1变成了.0,而是0.10;把1转化为1.00
    后来改进了
    RTrim(RTrim(Round(TO_char(X,'fm99999990.99'),2)),'0'),'.')
    就能够0.1->0.1;1->1