前导为0的数字到字符的转换不起作用



我有一个将数字转换为字符的case。

但是当我试图将它们转换为char时,0丢失了。因此,我尝试用以下方法进行转换。

选择空白(to_char(0.5,"FM90.099"),"。")从双重;

但是这对00.500不起作用。00.500也可以写成0.50110.50是#######。为了使这种情况下工作,我需要将其更改为to_char(110.50,'FM990.099)。但是如果是4位数,它就不成立了。我也不确定生产系统可以有多少个数字。是否有其他方法可以将数字转换为字符,并且不遗漏0

输入足够的前导和后导9s,以说明您的最大精度和比例。如果格式掩码不够大,则增加9的数量,直到它足够大。

SELECT RTRIM(TO_CHAR(value, 'FM999999999999999999990.99999999'), '.') AS formatted_number
FROM   table_name;

对于样本数据:

CREATE TABLE table_name (value) AS
select 0.5     from dual UNION ALL
select 0.5000  from dual UNION ALL
select 0000.5  from dual UNION ALL
select 000.500 from dual UNION ALL
select 1e10    from dual UNION ALL
select 110.1234567 from dual;

输出:FORMATTED_NUMBER tbody> <<tr>0.50.50.50.510000000000110.1234567

最新更新