!!!紧急求救ORACLE高手,ORACLE中如何将数字转化为字符串 本人为oracle菜鸟,select 500 / 1000 from dual显示:0.5select to_char(500 / 1000) from dual显示:.5我想请教,ORACLE中如何将数字转化为字符串能够正确显示出0.5 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select to_char(500 / 1000,'0.0') from dual 1* select to_char(500 / 1000,'999,990.9') from dualSQL> /TO_CHAR(50---------- 0.5 select to_char(500 / 1001,'0.0000000') from dual结果: 0.4995005小数位可以放长一点,精度高! select to_char(500 / 1000,'999,990.9') from dual//一般是这么写,比较方便,方法很多,不过要注意小数位数,保留一位小数是上面sql,两位如:select to_char(500 / 1000,'999,990.99') from dual,如此类推 不好意思,我不需要保留固定的小数select 500 / 1000 from dual显示:0.5select 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)请教该如何实现呢? 例: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)请教该如何实现呢? select to_char(500 / 1000,'999,990.9') from dual上面不是有人给出了答案了吗 引用 2 楼 phoenix_99 的回复:引用楼主 haoren001 的回复:本人为oracle菜鸟,select 500 / 1000 from dual显示:0.5select 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) select to_char(500 / 1001,'0.0000000') from dual 利用CASE 判断,小于1前补0 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 select rtrim(to_char(50/1000, 'fm9990.99'),'.') from dual;0.05select rtrim(to_char(500/1000, 'fm9990.99'),'.') from dual;0.5select rtrim(to_char(5000/1000, 'fm9990.99'),'.') from dual;5 15楼的小数点后面位数太少了,select RTRIM(to_char(500/1000, 'fm99999999999999999990.9999999999999999999999'),'.') from dual; oralce算法 left join 提示没有完全结束,请高手看一下. 可以在行级触发器中取消当前行的插入吗 在oracle 如何判断日期是否合法? 菜鸟级提问,一条SQL语句,不知道如何修改才能满足需求[请高手看看] 按出生日期计算年龄段,进行统计? oracle的***.dmp数据文件imp导入不成功,都有哪些原因?大家谈谈,谢谢! PLSQL连接数据库的问题 一个很简单的赋值语句,帮忙! (急) 排序问题,Help me 急:想要在98机子上装oracle,哪里可下载oracle的个人版? 存储过程改成一条sql 求几个视图介绍!!
SQL> /TO_CHAR(50
----------
0.5
小数位可以放长一点,精度高!
//一般是这么写,比较方便,方法很多,不过要注意小数位数,保留一位小数是上面sql,两位如:
select to_char(500 / 1000,'999,990.99') from dual,如此类推
我不需要保留固定的小数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)
请教该如何实现呢?
这样结果是为 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)
请教该如何实现呢?
上面不是有人给出了答案了吗
引用楼主 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)
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
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
select RTRIM(to_char(500/1000, 'fm99999999999999999990.9999999999999999999999'),'.') from dual;