字段提取遇到问题了,请老师指点指点!!!SQL行不通的话,是否可以直接在FR实现???

select substr(WAFERNO,1,instr(WAFERNO,'-',1,2)-1),a.* from 表名这么写的话,会出现上面的问题。

发现了规律,不管怎么样,就是后面都是单纯的数字,例如0-0-0-17或者2-6-9-16或者2-6-9等,不会有和字母组合。。。但是前半部分都会有字母组合,比如PF932-022DF2等

如何用Oracle做好提取呢?

FineReport 帆软用户04RR9GEYFP 发布于 2022-11-22 13:23 (编辑于 2022-11-22 13:57)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
weibwLv7高级互助
发布于2022-11-22 13:54

我想到的是把字符串按照-进行拆分并列转行+序号。过滤掉纯数字的区段后,然后根据序号及你那个字段再进行行转列的合并

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-11-22 13:37(编辑于 2022-11-22 13:39)

select substr(WAFERNO,1,len(WAFERNO)-instr(reverse(WAFERNO),'-',1,3)),a.* from 

-----------------

oracle可能是length 不是len 没环境 你自己试吧

  • weibw weibw 老哥,他这个是动态的,需要判断非纯数字的那一段
    2022-11-22 13:40 
  • Z4u3z1 Z4u3z1 回复 帆软用户04RR9GEYFP(提问者) 看上面补充的
    2022-11-22 13:43 
  • Z4u3z1 Z4u3z1 回复 weibw 是动态啊 WAFERNO的长度减去 逆序后 WAFERNO中第三个“-”的位置,这不就是TA要的字符串长度么
    2022-11-22 13:45 
  • weibw weibw 回复 Z4u3z1 他后面纯数字的区段可能不止3个,也有4个的
    2022-11-22 13:46 
  • Z4u3z1 Z4u3z1 回复 weibw 晕 没看最后一张图。没救了。想不通了
    2022-11-22 13:49 
最佳回答
0
NikoLv4见习互助
发布于2022-11-22 14:14

你这个的规律就是 字母数字-字母跟-纯数字,去除-纯数字的部分

参考 Oracle 正则表达式函数-REGEXP_REPLACE

  • 1关注人数
  • 386浏览人数
  • 最后回答于:2022-11-22 14:14
    请选择关闭问题的原因
    确定 取消
    返回顶部