【发布时间】:2017-08-24 18:20:17
【问题描述】:
我一直在查看没有小数位的货币列。这是加载到我们的 Oracle 数据库中的遗留系统的输出。
如果字段包含三个或更多数字,则它应该在右边三个空格处有一个小数。
如果值少于三个数字,它应该有一个小数和一个前导零。
例如:
- 2050 应转换为 2.050
- 110 应转换为 .110
- 50 应转换为 0.050
我尝试过使用强制转换,但收到错误“无效数据类型”。
这是一个基本的选择语句:
select
customer_id
cast(ENDING_BALANCE as (decimal(10,3)) as Bal_1
from Current_Balances
任何建议将不胜感激。
【问题讨论】:
-
你在小数点之前有一个额外的括号。试试
cast(ENDING_BALANCE as decimal(10,3)) -
感谢@scsimon 的捕获。这次它运行了,但没有添加小数。
-
输入的数据类型是什么?它们是 NUMBER 还是 VARCHAR2?结果的所需数据类型是什么 - NUMBER 或 VARCHAR2?
标签: sql oracle casting decimal currency