Oracle 格式化数字

来源:互联网 发布:淘宝客服经典对话 编辑:程序博客网 时间:2024/04/27 16:24

-- Start

所谓格式化数字指的是将数字转为字符串,或将字符串转为数字,下面几个函数可以用来格式化数字。

TO_CHAR(number, 'format')TO_NUMBER('character', 'format')TO_BINARY_FLOAT('character', 'format')TO_BINARY_DOUBLE('character', 'format')

我们先来看看通过下面的 SQL 产生的结果吧。

SELECT TO_CHAR(number, 'format') FROM DUAL;

NumberFormatResult-12345678909999999999S'1234567890-'099.99' .00'+0.199.99' .10'-0.299.99' -.20'090.99' 0.00'+0.190.99' 0.10'-0.290.99' -0.20'09999' 0'19999' 1'0B9999' '1B9999' 1'0B90.99' '+123.456999.999' 123.456'-123.456999.999'-123.456'+123.456FM999.009'123.456'+123.4569.9EEEE' 1.2E+02'+1E+1239.9EEEE' 1.0E+123'+123.456FM9.9EEEE'1.2E+02'+123.45FM999.009'123.45'+123.0FM999.009'123.00'+123.45L999.99' $123.45'+123.45FML999.99'$123.45'+12345678909999999999S'1234567890+'

那么 Oracle 支持哪些格式呢?看看下面的表格吧

FormatDescription9代表一位任意数字.小数点D本地化小数点(NLS_NUMERIC_CHARACTER),千分位G本地化千分位(NLS_NUMERIC_CHARACTER)S在前部或尾部添加正负号0在前部或尾部添加 0$在前部添加美元符号L添加本地化货币符号(NLS_CURRENCY)U添加DUAL货币符号(NLS_DUAL_CURRENCY)C添加ISO货币符号(NLS_ISO_CURRENCY)B添加空格如果整数部分为0X将10 进制转成16进制V将要格式化的值乘以10nEEEE科学计数法MI对于正数,在尾部添加空格
对于负数,在尾部添加负号PR对于正数,用空格包围
对于负数,用<>包围RN返回大写罗马数字rn返回小写罗马数字TM超过64位,返回科学计数法

除此之外,需要特别注意,格式化会引起四舍五入,如果数字过大,数字会被格式化成类似 ##### 这样的形式。

--更多参见:Oracle SQL 精萃

-- 声明:转载请注明出处

-- Last edited on 2015-06-12

-- Created by ShangBo on 2015-06-12

-- End


0 0