`
Javahuhui
  • 浏览: 80864 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle保存小数点前为"0"的问题

阅读更多
oracle保存小数点前为"0"的问题 

2011-11-01 15:35:48|  分类: oracle开发 |字号 订阅
1、直接使用to_char函数

    首先实验一下将小数点前和小数点后都加上99999999的格式:

SQL> select to_char(num,'999999999.999999999') from t1_number;

TO_CHAR(NUM,'9999999
--------------------
          .326800000
          .579656860
  52345234.568600000
         4.552686000
         5.292000000

    发现小数点前还是没有0,而小数点后的0多出来了
    再实验一下小数点前和小数点后都加上0000000000格式:

SQL> select to_char(num,'00000000000.000000000') from t1_number;

TO_CHAR(NUM,'000000000
----------------------
00000000000.326800000
00000000000.579656860
00052345234.568600000
00000000004.552686000
00000000005.292000000

    发现小数点前是有0了,但是两边的0都多出来了,使用FM来去掉多于的0:

SQL> select to_char(num,'fm00000000000.000000000') from t1_number;

TO_CHAR(NUM,'FM0000000
----------------------
00000000000.326800000
00000000000.579656860
00052345234.568600000
00000000004.552686000
00000000005.292000000

    没有效果,说明FM只能去掉用9表示的格式中产生的0:

SQL> select to_char(num,'fm999999999.999999999') from t1_number;

TO_CHAR(NUM,'FM99999
--------------------
.3268
.57965686
52345234.5686
4.552686
5.292

    但是这样还是没有0,最后发现可以将小数点前的第一位置为0即可(注意9的个数要大于数值的位数):

SQL> select to_char(num,'fm999999990.999999999') from t1_number;

TO_CHAR(NUM,'FM99999
--------------------
0.3268
0.57965686
52345234.5686
4.552686
5.292

    检查一下第一位,没有问题:

SQL> select substr(to_char(num,'fm999999990.999999999'),1,1) from t1_number;

SU
--
0
0
5
4
5

2、使用decode函数

    既然小于1的小数首位必然是'.',那就判断首位是否为'.',是则在前面加上'0'即可

SQL> select decode(substr(num,1,1),'.','0'||num,num) from t1_number

DECODE(SUBSTR(NUM,1,1),'.','0'||NUM,NUM)
-----------------------------------------
0.3268
0.57965686
52345234.5686
4.552686
5.292

    同样检查一下第一位,没有问题

SQL> select substr(decode(substr(num,1,1),'.','0'||num,num),1,1) fro
m t1_number;

SU
--
0
0
5
4
5
分享到:
评论

相关推荐

    oracle基本数据类型

    Oracle 基本数据类型 Oracle 中有多种基本数据类型,包括字符类型、数字类型、日期类型、二进制类型等。了解这些数据类型的特点和使用场景,对于数据库设计和开发至关重要。本文将详细介绍 Oracle 中的基本数据类型...

    oracle数据类型.doc

    例如,`number(3,0)`,输入575.316,实际保存的是575。 4. **Date**: 用于存储日期和时间,范围从公元前4712年到公元4712年,包括小时、分钟和秒。默认格式为DD-MON-YY。例如,'07-NOV-00'表示2000年11月7日。 5. ...

    Oracle 数据类型及存储方式.pdf

    Oracle中的DATE类型存储了世纪、年、月、日、小时、分钟和秒,具体可以达到小数点后三位的秒数精度。由于日期时间型数据需要记录时间信息,其存储格式通常为7个字节。 LOB数据类型包括CLOB、NCLOB和BLOB等,用于...

    Oracle数据库语句大全.doc

    Oracle 数据库语句大全 Oracle 数据库语句大全是 Oracle 数据库管理系统中的一系列语句,用于管理和操作数据库。这些语句可以分为五大类:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和事务...

    v512工作室_张利国_Java高端培训系列教材_Oracle实用教程_04章_Oracle数据类型和函数.

    在现实世界中,为了有效地保存和处理不同类型的信息,我们需要使用不同的数据类型。例如,整型数据用于表示整数值,支持常见的数学运算如加、减、乘、除;浮点型数据则用于表示带有小数点的数值;而字符或字符串类型...

    oracle数据类型及存储方式.doc

    在Oracle中,数据类型是定义数据库中字段或变量所能存储的数据种类的关键元素,而存储方式则关乎如何在磁盘上保存这些数据以及如何优化空间利用率。以下是对Oracle数据类型及存储方式的深入探讨。 ### 第一部分:...

    oracle的数据类型_java中Clob型详细用法_struts中实现图片上传功能

    8. BFILE: 外部二进制对象类型,保存在数据库外部,最大长度同样为 4GB。Oracle 可以读取和查询 BFILE,但无法进行写入操作,其大小由操作系统决定。 【Java 中操作 Oracle Clob 型】 在 Java 中,我们可以使用 `...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    oracle9i文档

    - `NVL(column_name, 0)`: 如果为空,则替换为 0。 - `NULLIF(column_name1, column_name2)`: 如果相等,则返回 NULL。 - `DECODE(column_name, value, result, default)`: 类似于 IF-THEN-ELSE。 **2.3 SQL 中...

    Oracle基本数据类型.pdf

    - **定义**: 可变长的数值列,允许 0、正值及负值,m 是所有有效数字的位数,n 是小数点后的位数。 - **特点**: - m 范围为 1 至 38,n 范围为 -84 至 127; - 如果数值超出位数限制,则会被截断; - 例如,`...

    TimesTen 连接属性

    15. LockLevel:锁定粒度,0为行级锁,1为DataStore级锁。 16. LockWait:定义锁等待超时上限,单位为秒,允许小数点后一位。 17. LogAutoTruncate:在恢复期间遇到异常日志时的行为,0表示停止并报告错误,1表示...

    oracle基础知识.docx

    如果`m`为负,则表示小数点前有`|m|`位。 - `CHAR(n)`:这是定长字符串类型,长度固定为`n`个字符,不足时用空格填充。 - `VARCHAR(n)`:变长字符串类型,根据实际内容长度占用空间,对空格敏感。 - `VARCHAR2(n)...

    Oracle知识综合整理.docx

    `创建了一个名为`my_tablespace`的表空间,数据文件初始大小为100K,并启用自动扩展。 Oracle用户管理和权限控制是确保数据安全的重要环节。`CREATE USER`用于创建新用户,`ALTER USER`可以修改密码或锁定/解锁账户...

    Oracle中的SQL语言技巧

    Oracle数据库是世界上最广泛使用的数据库管理系统之一,其SQL语言是数据管理的核心工具。SQL(Structured Query Language)是一种标准化的关系型数据库语言,用于查询、插入、更新和管理关系数据库。本篇文章将深入...

    Oracle数据库基本数据类型.pdf

    2. **VARCHAR2(n)**:这是Oracle中最常用的可变长度字符串数据类型,长度范围为1到4000字节。与CHAR不同,VARCHAR2只存储实际的数据长度,不会填充空格。在Oracle 8i及以上版本,如果数据前后有空格,系统会自动删除...

    oracle数据类型及存储方式

    Oracle数据库是世界上最流行的关系型数据库管理系统之一,其强大的功能和高效的数据管理能力使其在企业级应用中广泛应用。本文将深入探讨Oracle数据类型及其存储方式,帮助读者理解和掌握Oracle数据库的基础知识。 ...

    Oracle 自学入门

    ### Oracle自学入门知识点详解 #### 一、Oracle安装与配置基础 在开始Oracle的学习之前,首先需要确保已经正确安装并配置了Oracle环境。本部分基于以下系统环境: - **操作系统**:Windows 2000 - **数据库版本**:...

    第三章SQL和OracleSQL函数.ppt

    SQL,全称为Structured Query Language,是一种专门用于管理和处理关系数据库的标准语言。Oracle SQL是SQL的一个特定实现,由Oracle公司提供,用于在其数据库管理系统中执行数据操作。本章将重点介绍SQL的基本概念、...

    学习Oracle数据库基本数据类型.pdf

    在Oracle 12c及更高版本中,通常推荐使用Varchar2而非Varchar,因为Varchar现在被视为Varchar2的别名。对于大数据,BLOB和CLOB提供了灵活且高效的方法。理解这些数据类型及其特性对于有效的数据库设计至关重要。

Global site tag (gtag.js) - Google Analytics