没有小数的货币列:添加小数

Currency column with no decimals: add in decimal

我一直在查看没有小数位的货币列。它是加载到我们的 Oracle 数据库中的遗留系统的输出。

如果该字段有三个或更多数字,它应该在右边三个空格处有一个小数。

如果该值少于三个数字,则它应该有一个小数点和一个前导零。

例如:

我试过使用强制转换,但收到错误 'invalid datatype.'

这是一个基本的 select 语句:

    select 
    customer_id
    cast(ENDING_BALANCE as (decimal(10,3)) as Bal_1
    from Current_Balances

如有任何建议,我们将不胜感激。

我认为你需要将其转换为一个数字并除以 1000

SELECT CAST(CAST('2050' as INT)/1000 as DECIMAL(10,3)) FROM DUAL

如果你真的想让输出格式看起来像那样,你需要TO_CHAR它

SELECT LTRIM(TO_CHAR(CAST('2050' as INT)/1000, 'FM0.000'), '0') FROM DUAL