Как сохранить лидирующие нули при преобразовании в десятичный в оракуле - PullRequest
0 голосов
/ 21 ноября 2018

Я выполняю следующий запрос в 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, чтобы получить результат, как показано ниже.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018
  select to_char(-156.57,'000000000.00')
  from dual;
0 голосов
/ 21 ноября 2018

Вы можете использовать такой формат:

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

RESULT
-----------------
-0000000000156.57
...