如何在忽略非数字字符的情况下,在MySQL中将varchar(500)转换为浮点型?我的代码目前看起来像这样
select distinct(customer_id), cast(val_amt as float) from(
select prsn_real_gid, vital_nam, vital_performed_date,
case when val_amt ~'^[0-9]+' then val_amt else null end as val_amt from my_table);但是我得到了以下错误消息
[Amazon](500310) Invalid operation: Invalid digit, Value 'X', Pos 2, Type: Double
Details:
-----------------------------------------------
error: Invalid digit, Value 'X', Pos 2, Type: Double
code: 1207
context: 1.XYXY04
query: 4147
location: :0
process: query0_118_4147 [pid=0]
-----------------------------------------------;
1 statement failed.例如,我的数据如下所示:
customer_id | val_amt
111 | 23.45
112 | 21
113 | x
114 | /
115 |
116 | 23/24如你所见,我有小数、整数、字母、符号和空值。我想忽略所有不是小数或整数的东西。
发布于 2019-12-10 03:42:27
您可以使用regexp
select customer_id, val_amt + 0
from my_table
where val_amt regexp '^[0-9]+[.]?[0-9]*';https://stackoverflow.com/questions/59255406
复制相似问题