格式1:substr(string string,int index,int length)
理解:substr(被截取的字符串,下标即开始截取的位置-整数,截取的长度-整数)
适用于有截取的长度限制的场景。
格式2:substr(string string,int index)
理解:substr(被截取的字符串,下标即开始截取的位置-整数)
适用于无长度限制,从下标位置开始进行截取一直截取到最后
注意:substr()函数中的下标开始截取的位置,其中0和1指代的都是首位,没有区别。当下标位置是负数时,就是从右向左开始查找下标位置,然后自下标位置再从左往右开始截取。(很多解释这个函数的,就是说从从右向左截取,这个说法是错误的,不太理解多吧?没事儿看例子吧,或许看后理解了)
举例 格式1:
理解:substr(被截取的字符串,下标即开始截取的位置-整数,截取的长度-整数)
适用于有截取的长度限制的场
1 2 3 4 5 6 7 8 9 10 11 12 | select substr( '世事洞明皆学问,人情练达即文章' ,1,2) from dual; --输出‘世事' select substr('世事洞明皆学问,人情练达即文章 ',0,2) from dual;--输出‘世事' 开始位置0和1,结果是一样的 select substr( '世事洞明皆学问,人情练达即文章' ,2,3) from dual; --输出‘事洞明' 当开始位置为负数时,对比结果,发现规律 select substr('世事洞明皆学问,人情练达即文章 ',-3,2) from dual;--输出‘即文' select substr( '世事洞明皆学问,人情练达即文章' ,-4,2) from dual; --输出‘达即' select substr('世事洞明皆学问,人情练达即文章 ',-7,2) from dual;--输出‘人情' |
举例 格式2:
格式2:substr(string string,int index)
理解:substr(被截取的字符串,下标即开始截取的位置-整数)
适用于无长度限制,从下标位置开始进行截取一直截取到最后
1 2 3 4 5 6 7 8 9 10 11 12 | select substr( '无人扶我青云志,我自踏雪至山巅' ,1) from dual; --输出‘无人扶我青云志,我自踏雪至山巅' select substr('无人扶我青云志,我自踏雪至山巅 ',0) from dual;--输出‘无人扶我青云志,我自踏雪至山巅' select substr( '无人扶我青云志,我自踏雪至山巅' ,3) from dual; --输出‘扶我青云志,我自踏雪至山巅' 当开始位置为负数时,对比结果,发现规律 select substr('无人扶我青云志,我自踏雪至山巅 ',-3) from dual;--输出‘至山巅' ' select substr(' 无人扶我青云志,我自踏雪至山巅 ',-4) from dual;--输出‘雪至山巅' select substr( '无人扶我青云志,我自踏雪至山巅' ,-7) from dual; --输出‘我自踏雪至山巅' |
总结
到此这篇关于oracle数据库截取字符串substr函数使用的文章就介绍到这了,更多相关oracle截取字符串substr函数内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!