Oracle数据库中保留小数点后两位的问题解读

 更新时间:2024年09月20日 10:19:59   作者:無间行者  
在Oracle数据库中,对数字和百分比进行格式化,以保留两位小数,主要使用to_char()函数,对于大数字如10000000.12,使用to_char(字段名, 'FM99999999999990.00')可确保保留两位小数而无额外空格,对于百分比如86.63%

Oracle数据库中保留小数点后两位的问题

1.数字保留两位小数

(小数点左侧数字可能比较大,比如10000000.12)

to_char() 函数转换

答案

select trim(to_char(85.7323232, '9999999990.00')) as 两位小数 from dual;

写法对比

select result,
       to_char(result, '9999.99') as "位数不足",
       to_char(result, '9999999999.99') as "位数充足",
       to_char(result, '0000.00') as "0的位数不足",
       to_char(result, '0000000000.00') as "0的位数充足",
       to_char(result, '9999999990.00') as "9的位数充足",
       trim(to_char(result, '9999999990.00')) as "9的位数充足且去掉左侧"
from (
    select 0 result from dual union
    select 1 result from dual union
    select 123 result from dual union
    select 123.4 result from dual union
    select 12345.67 result from dual union
    select 12345678.2 result from dual
)

2.百分比保留两位小数

(小数点左侧数字数字小于等于100,比如86.63%)

答案

select trim(to_char(0.7323232 * 100, '99990.99'))||'%' as 百分比 from dual;

select trim(to_char(0.7323232 * 100, '99990.99'))||'%' as 百分比 from dual;

写法对比

select result,
       to_char(result * 100, '99.99') || '%' as "9位数不足",
       to_char(result * 100, '00.99') || '%' as "0位数不足",
       to_char(result * 100, '99990.99') || '%' as "百分比",
       trim(to_char(result * 100, '99990.99')) || '%' as "去左侧空格的百分比",
       to_char(result * 100, 'fm99990.99') || '%' as "使用fm前缀的格式百分比",
       to_char(result * 100, 'fm99990.00') || '%' as "使用fm前缀的格式百分比2"
from (
    select 0 result from dual union
    select 1 result from dual union
    select 0.12345 result from dual union
    select 0.2 result from dual union
    select 0.23 result from dual union
    select 0.234 result from dual union
    select 0.2345 result from dual union
    select 0.23454 result from dual union
    select 0.23456 result from dual
)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • ORCAL 临时创建表与删除表

    ORCAL 临时创建表与删除表

    今天这篇文章就来给大家分享ORCAL 临时创建表与删除表的相关资料,如会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。下面就跟小编一起进入文章学习起来吧
    2021-10-10
  • oracle自动清理archivelog文件的具体方法

    oracle自动清理archivelog文件的具体方法

    这篇文章介绍了oracle自动清理archivelog文件的具体方法,有需要的朋友可以参考一下
    2013-09-09
  • Oracle文本函数简介

    Oracle文本函数简介

    Oracle数据库提供了很多函数供我们使用,下面为您介绍的Oracle函数是文本函数,如果您对此方面感兴趣的话,不妨一看。
    2015-08-08
  • Oracle归档日志写满(ora-00257)了怎么办

    Oracle归档日志写满(ora-00257)了怎么办

    今天在使用oracle数据库做项目时,突然报错:ORA-00257: archiver error. Connect internal only, until freed,该问题如何解决呢?经过本人一番折腾此问题还要归档于日志满了,下面小编把Oracle归档日志写满(ora-00257)的解决办法在此分享给大家供大家参考
    2015-10-10
  • Oracle 查询死锁并解锁的终极处理方法

    Oracle 查询死锁并解锁的终极处理方法

    本文主要介绍Oracle中如何查询死锁,并杀死这条进程解锁的方法,希望能帮到大家。
    2016-05-05
  • Oracle数据库中的控制文件管理以及常用参数设置

    Oracle数据库中的控制文件管理以及常用参数设置

    这篇文章主要介绍了Oracle数据库中的控制文件管理以及常用参数设置方法,包括控制文件不一致问题的解决方法以及隐藏参数等技巧,需要的朋友可以参考下
    2015-12-12
  • oracle与gbase8s迁移数据类型对照以及举例说明

    oracle与gbase8s迁移数据类型对照以及举例说明

    gbase8s是一个高性能的分布式关系型数据库,下面这篇文章主要给大家介绍了关于oracle与gbase8s迁移数据类型对照以及举例说明的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Oracle数据库常用命令整理(实用方法)

    Oracle数据库常用命令整理(实用方法)

    这篇文章主要介绍了Oracle数据库常用命令整理(实用方法),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Oracle数据库中字符串截取最全方法总结

    Oracle数据库中字符串截取最全方法总结

    Oracle提供了多种截取字符串的操作方法,可以根据具体需求选择合适的方法进行操作,下面这篇文章主要给大家总结介绍了关于Oracle数据库中字符串截取的最全方法,需要的朋友可以参考下
    2024-03-03
  • [Oracle] 浅谈Lock与Latch

    [Oracle] 浅谈Lock与Latch

    以下是对Oracle中Lock与Latch的相同点以及不同点进行了详细的分析介绍,需要的朋友参考下
    2013-07-07

最新评论