oracleto_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> 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 货币符号(使⽤本地化)
oracle 时间转换D ⼩数点(使⽤本地化)
G 分组分隔符(使⽤本地化)
MI 在指明的位置的负号(如果数字 < 0)
PL 在指明的位置的正号(如果数字 > 0)
SG 在指明的位置的正/负号
RN 罗马数字(输⼊在 1 和 3999 之间)
TH or th 转换成序数
V 移动 n 位(⼩数)(参阅注解)
EEEE 科学记数。现在不⽀持。
它还能将时间格式的数据转换成字符串,只是格式更加复杂。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论