频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Oracle数据库百分比格式化的解决方案

来源:pcdog 作者:佚名 出处:巧巧读书 2008-03-21 进入讨论组

精华网络内容 :http://www.qqread.com/network/

    问题:需要对在Oracle数据库中查询出来的数值进行比率的计算。类似于如下的SQL:
    

 Select Round((discount/Amount),2) from dual;

    这样算出来的数字可以满足绝大部分的需求。但是对于不到1的数字,问题出来了……显示的类似于 .45样子的数据。0.45前面的0不见了。

    以下总结了两种方法来解决缺0的问题。

    第一种解决方法:
   

 SELECT DECODE (TRUNC (1/100),0, REPLACE (1/100, '.', '0.'),TO_CHAR (1/100))
FROM DUAL;

    大家只要在1/100的地方替换成自己需要的百分数就可以了。

    第二种解决方法:
   

 SELECT RTrim(To_Char(1/100,'FM99999999990.9999'),'.') FROM dual;

    替换方式和上面相同。

    两种方式的详细比较:

    第一种公式比较复杂,但可以处理通用的数值。

    第二种看起来简单,不过格式化的值的位数一定要大于计算的位数才行。比如 SELECT RTrim(To_Char(200,'FM90.9999') ,'.') FROM dual; 显示的就是########,因为已经超过了格式化的范围。

更多文章 更多内容请看数字化校园网解决方案大型实用解决方案专题应用解决方案专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章