从数据库字符串中获取数字部分,用于数据分析

目录

前言:

一、思路

1、获取字符串中的小数及整数部分。

代码:

效果:

 解析:

2、获取字符串中数字部分

代码:

效果:

解析:

二、总结

前言:

        在大数据时代,我们经常要分析很多非结构化的数据,同时也要分析很多非标准的数据。如“0.78吨”,“CYJ23w-ABC”,“12.12元/小时”。因此我们需要计算累计多少吨时,需要将对应吨数求和处理,需要获取小时平均单价等。都需要在字符串里面去截取数字的部分。

一、思路

        我们有两种办法去处理这种数据,如果是数字开头的数据,我们可以使用regexp_substr函数加正则表达式的方式来直接截取。我们也可以使用regexp_replace来替换非数字的部分的。

1、获取字符串中的小数及整数部分。

代码:

select regexp_substr('12.12元/小时', '\d*(\d*\.\d*)?')  from dual

效果:

 解析:

        如图所示,此时我们使用正则表达式,匹配即可。如果看不懂直接复制就行。

2、获取字符串中数字部分

代码:

select regexp_replace('CYJ23w-ABC','[^[:digit:]]','') from dual;

效果:

解析:

        其中[[:digit:]] 代表匹配任何数字,[^[:digit:]]代表任何非数字,然后将非数字部分替换为空。

二、总结

        两种办法各有利弊,大家可以根据实际情况使用哦,如果有帮助,欢迎留言讨论。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值