PLSQL:填充数字和截断的数字转换



我正在尝试获得带有填充零和更多条件的所需输出,如下所示,具体取决于字段长度和十进制长度。我已经达到了部分解决方案,但尚未完全解决。以下是我的要求。

对于给定的数字 179.237,在输出中,我希望总长度为 12,只有 2 个小数位。 还必须删除小数点。

给定输入(示例,但可以是任意长度(:

179.237

预期输出(总长度 12,末尾有 2 位小数,即截断和要删除的小数点(:

000000017923

同时,如果给定的数字具有较少的十进制值或没有十进制值(例如:179.2,我应该得到如下输出(右填充零(。

000000017920

我的代码:

SELECT LPAD(TRIM(RPAD(TO_CHAR(TO_NUMBER(REPLACE(179.237,'.')),9999999999.00),12)),12,'0') from dual;

我的输出:

000000179237

所以我想我错过了其中的截断部分。另外,请告知是否可以简化此代码,因为我的功能太多了。非常感谢。

乘以

100 然后TRUNC吃以删除任何剩余的小数,并将 TO_CHAR 与格式掩码一起使用 000000000000

SELECT TO_CHAR(TRUNC(179.237*100),'000000000000') AS VALUE
FROM   DUAL;

输出

VALUE
------------
000000017923

相关内容

  • 没有找到相关文章

最新更新