oracle,sql截取问题

回答20个问题,其中有12个最佳答案

我想截取“回答”后面的数字,可能有一位也可能截取两位

这个sql怎么写啊?

lincoder 发布于 2021-1-18 10:36
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
krystal033Lv7高级互助
发布于2021-1-18 10:43(编辑于 2021-1-18 10:53)
select regexp_substr(substr('回答20个问题,其中有12个最佳答案',instr('回答20个问题,其中有12个最佳答案','回答')+2 ,5),'[0-9]+')  值 from dual

https://www.cnblogs.com/wangkang0320/p/6743965.html 参考这个

  • lincoder lincoder(提问者) 这个看过了还是写不出来
    2021-01-18 10:44 
  • krystal033 krystal033 回复 lincoder(提问者) 会是三位吗
    2021-01-18 10:48 
  • lincoder lincoder(提问者) 回复 krystal033 也有可能
    2021-01-18 10:50 
  • krystal033 krystal033 回复 lincoder(提问者) 里面有个5 只要是5位以内都可以这个公式
    2021-01-18 10:54 
最佳回答
0
spylLv5见习互助
发布于2021-1-18 10:50

ORACLE 10以上可以用正则截取

select regexp_substr('回答20个问题,其中有12个最佳答案','[0-9]+',1,1) as num from dual 

image.png

最佳回答
0
张洪威Lv6高级互助
发布于2021-1-18 10:50

with t as 

(select '回答20个问题,其中有12个最佳答案' a from dual union all

select '回答20222个问题,其中有12个最佳答案' a from dual union all

select '回答2个问题,其中有12个最佳答案' from dual)

select a,SUBSTR(a, INSTR(a,'回答')+2, INSTR(a,'个')-INSTR(a,'回答')-2) from t


image.png

最佳回答
0
loveqw20087Lv3见习互助
发布于2021-1-18 10:53

select  substr(T.ccc,2-length(T.ccc)) from t

最佳回答
0
小明不滚Lv6见习互助
发布于2021-1-18 11:37

用replace把“回答”替换成'',不行么?replace(字段名,'回答','')

  • 5关注人数
  • 458浏览人数
  • 最后回答于:2021-1-18 11:37
    请选择关闭问题的原因
    确定 取消
    返回顶部