为了账号安全,请及时绑定邮箱和手机立即绑定

字符串中“-”前的长度不一定就是三码,有可能是4码或者5码?

字符串中“-”前的长度不一定就是三码,有可能是4码或者5码?

幕布斯7119047 2022-12-07 17:13:50
oracle中如何截取字符串中,某个字符前的字符串? 例如截取字符串210-1106000001中“-”前的字符串?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

select substr(列, 1, instr(列, '-') -1) from 表。 
例:
SQL> select substr('210-1106000001', 1, instr('210-1106000001', '-') -1) from dual;

SUBSTR('210-1106000001',1,INST
------------------------------
210

SQL> select substr('1210-1106000001', 1, instr('1210-1106000001', '-') -1) from dual;

SUBSTR('1210-1106000001',1,INS
------------------------------
1210


查看完整回答
反对 回复 2022-12-10
?
aluckdog

TA贡献1847条经验 获得超7个赞

oracle中,截取某个字符串前的字符需要用instr函数和substr函数共同完成。

工具:oracle 10g

步骤:

1、以截取字符串“210-1106000001”中“-”前的部分为例。

2、执行语句为:


select substr('210-1106000001',1,instr('210-1106000001','-')-1) from dual;

3、结果为:

instr函数语法:instr( string1, string2, start_position,nth_appearance )

参数含义:

substr函数语法:substr(strings|express,m,[n])

参数含义:

strings|express :被截取的字符串或字符串表达式。

m 从第m个字符开始截取。

n 截取后字符串长度为n。

 


查看完整回答
反对 回复 2022-12-10
  • 2 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信