首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略非数字字符时的MySQL类型转换

忽略非数字字符时的MySQL类型转换
EN

Stack Overflow用户
提问于 2019-12-10 03:29:53
回答 1查看 27关注 0票数 0

如何在忽略非数字字符的情况下,在MySQL中将varchar(500)转换为浮点型?我的代码目前看起来像这样

代码语言:javascript
运行
复制
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);

但是我得到了以下错误消息

代码语言:javascript
运行
复制
[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.

例如,我的数据如下所示:

代码语言:javascript
运行
复制
customer_id  |  val_amt
111  | 23.45
112  | 21
113  | x
114  | /
115  | 
116  | 23/24

如你所见,我有小数、整数、字母、符号和空值。我想忽略所有不是小数或整数的东西。

EN

回答 1

Stack Overflow用户

发布于 2019-12-10 03:42:27

您可以使用regexp

代码语言:javascript
运行
复制
select customer_id, val_amt + 0
from my_table
where val_amt regexp '^[0-9]+[.]?[0-9]*';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59255406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档