Oracle 格式化数字

-- Start

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


 
 
  1. TO_CHAR(number, 'format')
  2. TO_NUMBER('character', 'format')
  3. TO_BINARY_FLOAT('character', 'format')
  4. 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 支持哪些格式呢?看看下面的表格吧

FormatDescription
9代表一位任意数字
.小数点
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添加空格如果整数部分为0
X将10 进制转成16进制
V将要格式化的值乘以10n
EEEE科学计数法
MI对于正数,在尾部添加空格
对于负数,在尾部添加负号
PR对于正数,用空格包围
对于负数,用<>包围
RN返回大写罗马数字
rn返回小写罗马数字
TM超过64位,返回科学计数法

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

--更多参见:Oracle SQL 精萃

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

-- Last edited on 2015-06-12

-- Created by ShangBo on 2015-06-12

-- End


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值