我一直在检查没有小数空格的货币列。它是加载到Oracle数据库中的遗留系统的输出。
如果该字段有三个或更多数字,则右边三个空格应该有一个小数。
如果该值少于三个数字,则它应具有小数和前导零。
例如:
我尝试使用强制转换,但收到错误'无效的数据类型。'
这是一个基本的选择声明:
select
customer_id
cast(ENDING_BALANCE as (decimal(10,3)) as Bal_1
from Current_Balances
任何建议将不胜感激。
答案 0 :(得分:2)
我认为您需要将其转换为数字并除以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