截取ORACLE字符串中的数字

有一地址字段,内容如下:东四北大街2巷4条133号西四大街5条6633号东单北大街5条3号院2号楼1单元23号要取的字段是地址中“最后一个号字”前面的数字,该数字不定长... 有一地址字段,内容如下:
东四北大街2巷4条133号
西四大街5条6633号
东单北大街5条3号院2号楼1单元23号

要取的字段是地址中“最后一个号字”前面的数字,该数字不定长
展开
 我来答
198901245631
2015-11-07 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1712万
展开全部
可以通过REGEXP_SUBSTR函数(配合正则表达式)来实现。
举例:
sql:select regexp_substr('CYJ8-ABC','[0-9]+') from dual;

以上sql执行结果:8;
备注:
REGEXP_SUBSTR函数格式如下:
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
__srcstr :需要进行正则处理的字符串
__pattern :进行匹配的正则表达式
__position :起始位置,从第几个字符开始正则表达式匹配(默认为1)
__occurrence :标识第几个匹配组,默认为1
__modifier :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
随o天
2012-09-10 · TA获得超过3158个赞
知道大有可为答主
回答量:1740
采纳率:71%
帮助的人:2020万
展开全部
设表名TAB、字段名DZ,保证最后的字是“号”,且地址号不超过4位9999。
语句如下:
SELECT REGEXP_SUBSTR(DZ,'[0-9]+',INSTR(DZ,'号',-1,1)-4,3) FROM TAB;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式