一个sql问题,请帮忙解答

超叔csdn 2009-10-20 07:45:55
如何从“预存200送100元”这样的字符串中取出100这个数字。
用regexp_substr如何抽取,急!
...全文
240 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
超叔csdn 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wildwave 的回复:]
select substr(regexp_substr('存1000话费送200元','送[[:digit:]]+'),2) from dual
[/Quote]

这种就可以实现
inthirties 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sjm5210 的回复:]
在oracle中好像没有regexp_substr函数吧,我在sqlplus中执行报错
[/Quote]

正则是10g开始支持的。所以你的版本是低的
sjm5210 2009-10-21
  • 打赏
  • 举报
回复
在oracle中好像没有regexp_substr函数吧,我在sqlplus中执行报错
cosio 2009-10-21
  • 打赏
  • 举报
回复
--9i:

select substr(a, instr(a, '送') + 1, instr(a, '元') - instr(a, '送') - 1)
from (select '预存200送100元' a
from dual
union all
select '预存200送1000元' from dual);

--输出:
SUBSTR(A,INSTR(A,'ËÍ')+1,INSTR
100
1000

--10G:
select substr(regexp_substr('存1000话费送200元','送[[:digit:]]+'),2) from dual
小灰狼W 2009-10-21
  • 打赏
  • 举报
回复
select substr(regexp_substr('存1000话费送200元','送[[:digit:]]+'),2) from dual
oracledbalgtu 2009-10-21
  • 打赏
  • 举报
回复
select substr(a, instr(a, '送') + 1, instr(a, '元') - instr(a, '送') - 1)
from (select '预存200送100元' a
from dual
union all
select '预存200送1000元' from dual);

--输出:
SUBSTR(A,INSTR(A,'ËÍ')+1,INSTR
100
1000
inthirties 2009-10-20
  • 打赏
  • 举报
回复
select regexp_substr('预存200送100元','1[0]{2}') from dual
确实是可以提取100

不过楼主是只能提取100么,

预存200送50元 要不要求提取出50来呀,如果需要,上面的就不行了。
qin_phoenix 2009-10-20
  • 打赏
  • 举报
回复
呵呵,估计不能满足需求
yubin88 2009-10-20
  • 打赏
  • 举报
回复
顶[Quote=引用 1 楼 wildwave 的回复:]
select regexp_substr('预存200送100元','1[0]{2}') from dual

[/Quote]
gisyellow 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 sbaz 的回复:]
如何从“预存200送100元”这样的字符串中取出100这个数字。
用regexp_substr如何抽取,急!
[/Quote]
正解
小灰狼W 2009-10-20
  • 打赏
  • 举报
回复
select regexp_substr('预存200送100元','1[0]{2}') from dual

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧