admin

在Oracle中转换为十进制时如何保留前导零

sql

我在oracle中运行以下查询。

WITH
ta AS (
     SELECT account_coid
        ,txn_id
        ,cbdev.cbzdt(effective_date) AS effective_date
        ,cbdev.cbchr(utl_raw.substr(txn_data, 113, 20)) AS CESG_amt
     FROM bs_transaction
     WHERE sub_type = 127469880)
SELECT
cast(ta.CESG_amt as DECIMAL (20,2)) AS cesg_amt
from ta 
inner join ....

在这里,我得到的结果(cesg_amt)为-156.57。但我需要结果为-0000000000156.57
我需要-保留前导零(前导0和小数点后两位)。

我已经尝试to_char(ta.CESG_amt, '0000000000000.00') AS cesg_amt在查询中,但没有用。

您能否帮助我在DECIMAL字段中进行以下操作才能获得如下结果。


阅读 228

收藏
2021-07-01

共1个答案

admin

您可以使用以下格式:

select to_char(-156.57,'fm0000000000000D00','NLS_NUMERIC_CHARACTERS = ''.,''')
       as Result
  from dual;

RESULT
-----------------
-0000000000156.57
2021-07-01