to string oracle,Oracle基础教程:函数to_char将number转成string

很多数据转换处理操作时,会遇到将0.007007040000转换成0.70%的需求,我们使用Oracle 的SQL 函数 to_char可以实现这种转换。

这个函数用来将DATE或NUMBER数据类型转换成可显示的字符串,格式是to_char(number_type, format_mask)。

格式'999.99',9表示对应的某一个指定位数的值,如果是值是0则忽略不显示,如果指定位数没有值,则以空格表示。

格式'0990.990',0表示对应的某一个指定位数的值,如果是值是0则显示为0,如果是没有值也显示为0。

格式'FM990.90',FM表示将显示出来的字符串定位数没有值而显示的空格清理掉,作用和ltrim类似。

SQL> select to_char(12304.560,'999.99') from dual;

TO_CHAR(12304.560,'999.99')

---------------------------

#######

SQL> select to_char(104.560,'999.99') from dual;

TO_CHAR(104.560,'999.99')

-------------------------

104.56

SQL> select to_char(104.560,'99999.99') from dual;

TO_CHAR(104.560,'99999.99')

---------------------------

104.56

SQL> select to_char(104.560,'99999.990') from dual;

TO_CHAR(104.560,'99999.990')

----------------------------

104.560

SQL> select to_char(104.560,'0099.990') from dual;

TO_CHAR(104.560,'0099.990')

---------------------------

0104.560

Sql代码

SQL>

SQL> select to_char(round(0.007007040000, 4) * 100, 'FM99999999990.90') || '%' as aa,

2        length(to_char(round(0.007007040000, 4) * 100, 'FM99999999990.90') || '%') as bb

3    from dual;

AA                      BB

---------------- ----------

0.70%                    5

SQL>

SQL> select to_char(round(0.007007040000, 4) * 100, '99999999990.90') || '%' as aa,

2        length(to_char(round(0.007007040000, 4) * 100, '99999999990.90') || '%') as bb

3    from dual;

AA                      BB

---------------- ----------

0.70%        16

这是to_char将数字转换成字符串的常见操作功能,还有其他一些格式,见to_char(numeric)的格式模板。

模板代码

模板    描述

9    带有指定位数的值

0    前导零的值

. (句点)    小数点

, (逗号)    分组(千)分隔符

PR    尖括号内负值

S    带负号的负值(使用本地化)

L    货币符号(使用本地化)

D    小数点(使用本地化)

G    分组分隔符(使用本地化)

MI    在指明的位置的负号(如果数字 < 0)

PL    在指明的位置的正号(如果数字 > 0)

SG    在指明的位置的正/负号

RN    罗马数字(输入在 1 和 3999 之间)

TH or th    转换成序数

V    移动 n 位(小数)(参阅注解)

EEEE    科学记数。现在不支持。

它还能将时间格式的数据转换成字符串,只是格式更加复杂。

0b1331709591d260c1c78e86d0c51c18.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值