该列中的值示例为:
$3,459.09
$98.00
$6,789,123.15
$5,435.00
我可以使用子字符串删除美元符号,但是找不到将字符转换为数字的方法。
我尝试了几种选择
1. to_number(billed_amount) end as paid_amount_value
2. cast ( billed_amount as INT) as paid_amount_value
错误: 第一次:
ORA-01722: invalid number
01722. 00000 - "invalid number"
*Cause: The specified number was invalid.
*Action: Specify a valid number.
第二次:
ORA-00932: inconsistent datatypes: expected NUMBER got CHAR
00932. 00000 - "inconsistent datatypes: expected %s got %s"
答案 0 :(得分:2)
使用TO_Number
并设置'$999,999,999.99'
select TO_Number('$3,459.09','$999,999,999.99') from dual
所以在您的情况下
select TO_Number(column_name,'$999,999,999.99') from table_name
答案 1 :(得分:0)
如果您不使用double作为数据类型,则使用double。您需要删除逗号和空格(如果存在)
答案 2 :(得分:0)