`
huibin
  • 浏览: 757006 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

oracle 百分比换算问题

阅读更多

最近在做投票系统,每个投票的选项要算其在所有投票中的百分比:

 

SELECT RTrim(To_Char((1/3)*100,'FM99999999990.9999'),'.')||'%' FROM dual; 这样获得的是33.3333%

SELECT substr(RTrim(To_Char((1/3)*100,'FM99999999990.9999'),'.'),1,2) ||'%' FROM dual; 这样可以省略小数,得33%

SELECT RTrim(To_Char((round((1/3),2))*100,'FM99999999990.9999'),'.')||'%' FROM dual;与以上是同样效果,得33%.

其中把1/3换成你要的 我的是:单个选项的票数/总票数即可

当然单个选项的票数,总票数 也得你用你的SQL语句算出来就OK了.

 

对在Oracle数据库中查询出来的数值进行百分比格式化,解决普通算法缺0的问题。

问题:需要对在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; 显示的就是########,因为已经超过了格式化的范围。

分享到:
评论

相关推荐

    Oracle百分比分析函数RATIO_TO_REPORT() OVER()实例详解

    Oracle数据库中的RATIO_TO_REPORT()函数是一个非常有用的分析函数,尤其在进行数据比例分析和比较时。这个函数能够计算一个值相对于所有值总和的比例,返回的结果是一个百分比。配合OVER()子句,它可以用于全局或者...

    解决linux下oracle中文乱码问题,添加中文支持

    解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...

    ORACLE常用傻瓜问题

    ORACLE常用傻瓜问题1000问: 1. Oracle安裝完成后的初始口令?  internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp  2. ORACLE9IAS WEB CACHE的初始默认用户和密码...

    Oracle连接常见问题

    Oracle连接常见问题 Oracle连接常见问题

    oracle常见问题集锦

    oracle常见问题集锦oracle常见问题集锦

    oracle IO问题解析

    Oracle IO问题解析 Oracle IO 问题解析是指 Oracle 数据库中读写操作对 IO 的影响,包括写操作和读操作。写操作包括控制文件的写入、用户数据的修改、Redo Log 的写入、Archive Log 的写入和临时表空间的写入等。...

    linux安装oracle图形界面乱码问题.docx

    Linux 安装 Oracle 图形界面乱码问题解决方案 Linux 安装 Oracle 图形界面乱码问题是由于多种原因引起的,比如 Linux 操作系统的语言环境、Oracle 安装包的语言环境、Java 显示问题等。下面是解决这个问题的详细...

    Oracle数据库字符集问题解析

    Oracle数据库字符集问题解析

    oracle迁移达梦常见问题汇总

    本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...

    oracle的面试问题

    1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windows平台的稳定性和安全性影响了sql server的稳定性和安全性 ...

    JDBC连接Oracle数据库常见问题及解决方法

    "JDBC连接Oracle数据库常见问题及解决方法" 本文将对 JDBC 连接 Oracle 数据库常见问题进行总结和解决方法的介绍。以下是针对不同问题的解决方案: 1. Jbuilder 正确连接 Oracle 数据库需要注意的几个问题 在使用...

    关于Oracle数据库死锁问题的研究与讨论

    关于Oracle数据库死锁问题的研究与讨论

    oracle-查找硬解析问题SQL语句

    在数据库中硬解析是万恶之源,为大家提供一个查找并且定位oracle硬解析问题SQL语句脚本

    oci.zip 解决Oracle连接时提示oracle library is not loaded的问题

    总之,解决“oracle library is not loaded”问题的关键在于找到合适的oci.dll文件,并确保其与Navicat及系统环境兼容。同时,检查和配置好系统环境变量以及依赖库,也是确保顺利连接Oracle数据库的重要环节。在实际...

    ORACLE中科学计数法显示问题的解决

    "ORACLE中科学计数法显示问题的解决" 在 Oracle 中,科学计数法显示问题是一个常见的问题,特别是在 PLSQL 中显示超长数字的时候,会出现科学计数法的显示格式。本文档将为解决这个问题提供解决方法。 在 Oracle ...

    Oracle常用傻瓜问题1000问

    Oracle常用傻瓜问题1000问 《Oracle常用傻瓜问题1000问》内容提要: 大家在应用ORACLE的时候可能会遇到很多看起来不难的问题, 特别对新手来说, 今天我简单把它总结一下, 发布给大家, 希望对大家有帮助! 和大家一起...

    oracle常见问题大全

    在使用Oracle过程中,用户可能会遇到各种各样的问题,这里我们将深入探讨标题和描述中提到的一些关键知识点。 首先,让我们来看“Oracle常见傻瓜问题”。这通常涉及到初级用户在日常操作中遇到的简单但困扰的问题,...

    oracle数据库01033问题解决方法

    可以用于解决oracle 01033号问题

    Oracle使用疑难问题汇总

    教程名称:Oracle使用疑难问题汇总课程目录:【】Oracle DBA优化数据库性能心得体会【】ORACLE 中ROWNUM用法总结【】Oracle 查询表空间使用情况(经典篇)【】Oracle下巧用bulk collect实现cursor批量fetch【】...

    Oracle字符相似度函数

    Oracle字符相似度函数是Oracle数据库系统提供的一种功能,用于评估两个字符串之间的相似性。这个功能在数据清洗、信息检索、文本分析等领域具有广泛的应用。在SQL查询中,我们可以直接使用这些函数来比较不同字符串...

Global site tag (gtag.js) - Google Analytics