欢迎来到时小笙的博客

清和海风,溶溶月色~共赏之人,就在身侧!

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函数的结合使用

posted @ 2023-05-26 13:12  时小笙  阅读(43)  评论(0编辑  收藏  举报