Oracle
一、SUBSTR函数 和 INSTR函数
1.SUBSTR函数:截取字符串
语法:substr(源字符串,开始位置, [length])
开始位置:从1开始查找。如果是负数,则从源字符串末尾开始算起。
length:可选项,表示截取字符串长度。
2.INSTR函数:返回子字符串在源字符串中的位置
语法:instr(源字符串,目标字符串,[起始位置,检索次数])
起始位置:可选项,默认从1开始。如果为负数,则从右向左检索。
检索次数:可选项,表示子字符串第几次出现在源字符串当中,默认第1次,负数则报错。
3.SUBSTR和INSTR组合应用
语法1:instr(字符串1, substr( 字符串2, 开始位置))
- 返回字符串2中的某个字符,在字符串1中的位置。如果为0,则字符串1中不存在该字符。
select instr('hello world', substr('world',4))from dual;
--返回结果:10
select instr('hello world', substr('ovo',2))from dual;
--返回结果:0
语法2:substr(字符串, 1, instr(字符串, 字符)-1)
- 实现截取字符串中特定字符前后的字符串
例如:
--<1> 截取“hello,world”字符串中“,”分隔符之前的字符串
SELECT SUBSTR('hello,world', 1, INSTR('hello,world', ',')-1) FROM DUAL;
--结果:hello
--<2> 截取“hello,world”字符串中“,”分隔符之后的字符串
SELECT SUBSTR('hello,world', INSTR('hello,world', ',')+1) FROM DUAL;
--结果:world
--<3> 截取“hello,world,HH”字符串中第1次出现的“,”字符和第2次出现的“,”字符之间的字符串
SELECT SUBSTR('hello,world,HH', INSTR('hello,world,HH', ',',1)+1, INSTR('hello,world,HH', ',', 2)-1) FROM DUAL;
--结果:world
二、round函数:对某个值进行四舍五入
语法:round(数值,需保留小数点后面的位数)
参考:
CSDN博主「涛声依旧叭」的原创文章:Oracle中字符串截取最全方法总结
CSDN博主「初尘19」的原创文章:Oracle中substr函数和instr函数的结合使用