数据库类型为字符串,现在需要转换成数字型,如何把那些拥有字符串的去掉?

例如现在这几个字段是字符串的。我想把这几个字段类型换成数值型的,这种带了中文的,能直接去掉吗?

image.png

孜云 发布于 2020-7-22 10:21
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
jongwangLv6中级互助
发布于2020-8-24 17:13(编辑于 2020-8-24 17:14)

Mysql:

select -(-字段名) t from table;


Oracle:

select regexp_substr( 字段名,'[0-9]+(\.[0-9]+)*')  t  from table;



试下呢

  • 孜云 孜云(提问者) mysql这个是什么函数啊?-(-字段名)
    2020-08-25 17:21 
  • jongwang jongwang 回复 孜云(提问者) 查的,测了下有用,就贴出来了
    2020-08-25 17:29 
最佳回答
1
L大大Lv7高级互助
发布于2020-8-24 11:17

创建一个自定义函数

https://mp.weixin.qq.com/s?src=11&timestamp=1598236252&ver=2541&signature=oIrEZ6eHCqf7VrP6Uq*gDUBfHxZ*RJVwWHye0WxEF8kbSNGSwQTEzSYySuLVsHZn1Dt5-Hd7ZKCj73kltDFD7GCOMcgSQGixVdW9RTO9ozRet5qku7*3FoN9yXdI5fta&new=1

最佳回答
0
freetimeLv4见习互助
发布于2020-7-22 10:34

SELECT * FROM `aa` 

where length(a) !=char_length(a)


a 换成你的字段。

  • 孜云 孜云(提问者) 数据库可以直接转换吗?这样是查出包含中文字符串的嘛?
    2020-07-22 11:00 
  • freetime freetime 回复 孜云(提问者) 这样是查询出来的字段包含中文的记录。如果数据库直接转换需要考虑的情况就比较多了。如果生产环境不建议直接转换操作
    2020-07-22 11:05 
  • 孜云 孜云(提问者) 回复 freetime 那有什么好的方法呢?字段比较多,记录也多
    2020-07-22 11:30 
最佳回答
0
18382308625Lv6中级互助
发布于2020-7-22 14:30(编辑于 2020-7-22 14:30)

中文应该是不能转换成数值型的,你试一下截取吧,截取数值部分

比如:select substring( '300.09元', 1, (charindex('元','300.09元')-1))

  • 孜云 孜云(提问者) 不一定是元结尾,因为之前是字符串,填的很乱,什么符号都有
    2020-07-22 16:02 
最佳回答
0
孤陌Lv6资深互助
发布于2020-7-22 14:31

截取把 截取元前面的数据就好了

  • 孜云 孜云(提问者) 不一定是元结尾,因为之前是字符串,填的很乱,什么符号都有
    2020-07-22 16:02 
最佳回答
0
tangdageLv5初级互助
发布于2020-8-24 16:40

显示字符串即数字拼接单位可以么,底层依然是数字,只是前端展示加上单位可以试试

  • 7关注人数
  • 674浏览人数
  • 最后回答于:2020-8-24 17:14
    请选择关闭问题的原因
    确定 取消
    返回顶部