1、字符串类:
(1)substr函数 (字符截取函数)
格式1: substr(string str, int start, int length);
str:源字符串
start:字符串截取的开始位置,注:当start等于0或者1时,都是从第一位开始截取
length:要截取的字符串的长度
格式2:substr(string str, int start) ;
str:源字符串
start:截取从start位置开始到末尾的子串
返回值:截取的目标子串。
可以参考下面的示例:
1、select substr('HelloWorld',0,3) value from dual;
//返回结果:Hel,截取从“H”开始3个字符
2、select substr('HelloWorld',1,3) value from dual;
//返回结果:Hel,截取从“H”开始3个字符
3、select substr('HelloWorld',2,3) value from dual;
//返回结果:ell,截取从“e”开始3个字符
4、select substr('HelloWorld',0,100) value from dual;
//返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
5、select substr('Hello World',5,3) value from dual;
//返回结果:o W ,中间的空格也算一个字符串,结果是:o空格W
6、select substr('HelloWorld',-1,3) value from dual;
//返回结果:d ,从后面倒数第一位开始往后取1个字符,而不是3个。
7、select substr('HelloWorld',-3,3) value from dual;
//返回结果:rld ,从后面倒数第三位开始往后取3个字符
8、select substr('HelloWorld',-4,3) value from dual;
//返回结果:orl ,从后面倒数第四位开始往后取3个字符
(2)instr()函数(字符查找函数)
格式1:instr( string source, string target )
source:源字符串
target:目标字符串
格式2:instr( string source, string target [, start_position [, nth_appearance ] ] )
source:源字符串,字符串可以是CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或NCLOB等类型
target:目标字符串
start_position:可选的,匹配的开始位置。如果省略,则默认为1
nth_appearance:可选的, 子串的第n个出现。 如果省略,则默认为1。
返回值:目标子串在源字符串中出现的位置。若找不到目标子串,则返回0。
可以参考下面的示例:
1 select instr('helloworld','l') from dual;
//返回结果:3 默认第一次出现“l”的位置
2 select instr('helloworld','l',3,2) from dual;
//返回结果:4 也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置
3 select instr('helloworld','l',4,2) from dual;
//返回结果:9 也就是说:在"helloworld"的第4(l)号位置开始,查找第二次出现的“l”的位置
4 select instr('helloworld','l',-1,1) from dual;
//返回结果:9 也就是说:在"helloworld"的倒数第1(d)号位置开始,往回查找第一次出现的“l”的位置
5 select instr('helloworld','l',-2,3) from dual;
//返回结果:3 也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置