Oracle中去除小数点前多余的0(oracle小数点前0)

在数据库中有时可能会遇到一些小数都是带有前面多余的0的情况,比如0.640、0.099等,如何在Oracle数据库中去除小数点前多余的0?下面就介绍几种常见的方法

一、用TO_CHAR函数将数字格式化

TO_CHAR函数可以帮助我们将数字转换为字符串,同时可以在格式参数中加上一些修饰。如果想去除小数点前多余的0,只需在格式参数中指定FM修饰符即可,如:

SELECT TO_CHAR(0.360, ‘FM99999990.00’) FROM dual;

结果为: .36

二、数字字段转换为VARCHAR型

VARCHAR是一种可变长度的字符串类型,在涉及字符串操作时就会用到它,另外我们也可以将数字字段转换为VARCHAR类型,然后使用服务端函数LTRIM去掉前面的0。代码如下:

SELECT LTRIM(TO_CHAR(0.360),0) FROM Dual;

结果为:.360

三、用REPLACE函数及正则表达式

REPLACE函数用于替换字符串中出现的子字符串,在替换字符串中可以使用正则表达式,如果想要去除小数点前多余的0,使用正则表达式^0*的贪婪模式,就可以去掉多余的0。代码如下:

SELECT REPLACE(0.672,’^0*’) FROM Dual;

结果为:.672

以上就是Oracle中去除小数点前多余的0的几种方法,各有其适用场景,大家可以按照自己的需求灵活使用。


数据运维技术 » Oracle中去除小数点前多余的0(oracle小数点前0)