`
jimmy9495
  • 浏览: 299035 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Oracle精确小数点和百分比问题处理

阅读更多
需要对在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小数点处理

    本文将详细介绍Oracle数据库中用于处理小数点位数的几个关键函数及其应用场景。 #### 二、关键函数及用法 ##### 1. **ROUND 函数 - 四舍五入** - **函数定义**:`ROUND(number, [decimal_places])` - `number`:...

    基于oracle小数点前零丢失的问题分析

    本文主要探讨的是在处理小于1的小数时,使用`CHAR`类型可能导致小数点前的零被丢失的问题,以及如何通过`TO_CHAR`函数来解决这个问题。 首先,我们要了解问题的起源。当Oracle数据库中的字段用于存储小于1的小数,...

    Oracle数据库后台操作的脱敏处理.pdf

    Oracle数据库后台操作的脱敏处理.pdf

    oracle_常见故障处理

    oracle_常见故障处理.startup mount alter

    Oracle时间精确到时、分、秒处理方法

    Oracle数据库在处理时间数据时,通常使用DATE类型来存储日期和时间信息,它可以精确到天。然而,在实际应用中,我们可能需要将时间精确到时、分、秒,这就涉及到数据类型之间的转换,特别是在Java应用程序与Oracle...

    Oracle数据库日常运维及应急故障处理手册

    针对不同情况的故障排查和处理方法如下: 1. 如果是数据库实例宕机,应尽快重启数据库。 2. 如果是监听服务异常,可能需要重启监听进程。 3. 如果数据库挂起,则必须重启数据库。 4. 如果归档目录空间不足,应根据...

    oracle 在java中的事务处理和异常回滚。

    Java提供了`try-catch-finally`结构来捕获和处理异常。在上面的示例中,我们使用了`SQLException`来捕获数据库相关的错误。`finally`块可以用来确保即使在发生异常的情况下,也能正确关闭数据库连接。 Oracle数据库...

    Oracle JSON 字符串处理实例

    总的来说,Oracle的JSON处理能力强大且灵活,不仅能够满足基本的字符串操作,还能支持复杂的数据查询和转换,使得在关系型数据库中存储和处理JSON数据变得轻松易行。通过学习和实践这些功能,开发者可以更好地适应...

    oracle笔记异常处理

    oracle笔记异常处理,异常处理的代码案例和知识点笔记!

    Oracle Parallel 并行处理

    Oracle的并行处理技术是其高性能和高可用性的重要组成部分,尤其在现代数据中心的多核和分布式存储环境下,通过并行SQL、并行DML和DDL操作,以及在RAC环境下的并行执行,能够极大提升数据库系统的整体性能。...

    linux安装oracle图形化界面问题处理

    "Linux安装Oracle图形化界面问题处理" Linux安装Oracle图形化界面时经常会遇到各种问题,本文将总结这些问题的解决方法。 一、错误描述:xlib connection to ":0.0" refused by server 解决方案:此错误是由于...

    oracle死锁表后处理

    oracle死锁表后处理是数据库管理员和开发人员需要掌握的重要技能,旨在解决oracle数据库中出现的死锁问题,确保数据的一致性和安全性。 oracle锁机制可以分为六种模式:none、null、Row-S、Row-X、Share、...

    oracle10G和oracle11G的OCI.dll

    1. OCI接口:OCI提供了丰富的API(应用程序编程接口)集合,使得开发者能够通过C语言编写应用程序,实现对Oracle数据库的各种操作,如查询、插入、更新和删除数据,事务控制,游标处理等。oci.dll作为这些API的实现...

    oracle常见问题处理

    Oracle数据库在日常管理和维护中可能会遇到各种问题,以下是一些常见的问题及其解决方案: 1. **区域和语言选项问题**:如果在安装Oracle后通过“区域和语言选项”更改了设置,可能导致Oracle服务无法正常启动,...

    Oracle 数据库多语言入库问题的解决方案

    通过调整sqlloader的控制文件,指定正确的字符集,并在必要时进行数据预处理和后处理,可以克服字符集不兼容导致的乱码问题。 总的来说,Oracle数据库的多语言入库解决方案需要深入理解字符集的概念,熟悉Oracle...

    Oracle数据库字符集问题解析.pdf

    Oracle 数据库字符集问题解析对 Oracle 数据库管理系统的应用和发展产生了深远的影响。 在 Oracle 数据库管理系统中,字符集是指对一组特定的符号,分别赋予不同数值编码,以便于计算机的处理。常见的字符集包括 ...

    Oracle数据库处理时间的技巧

    处理时间信息是监控、诊断和处理数据库性能问题的重要依据。但是,Oracle 数据库的时间计量单位是厘秒,可能会导致一些问题,例如一些操作的持续时间不到厘秒,或者操作的起始和终止在不到厘秒内完成,导致时间记录...

    ORACLE异常处理剖析.pdf

    Oracle提供了一套完整的异常处理机制,允许程序员通过`BEGIN...EXCEPTION...END`块来捕获和处理这些异常。异常可以被显式捕获(通过`WHEN`子句指定特定类型的异常)或隐式捕获(通过`WHEN OTHERS`捕获所有未定义的...

    Oracle对JSON处理函数Jar包

    Oracle数据库在11g版本中开始支持对JSON数据的处理,以满足日益增长的Web服务和大数据需求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和高效性而广泛应用于网络通信。在...

Global site tag (gtag.js) - Google Analytics