目录
2.instr(resources,aim,start,num)
3.substr(resources,start,length)
1.instr(resources,aim)
解释:在resources中查找aim的位置。
如:
select instr('abcdabcd','a') from dual; -- 结果是1,表示a在字符串中abcdabcd中第一次出现的位置是2 。
select instr('abcdabcd','b') from dual; -- 结果是2,表示b在字符串中abcdabcd中第一次出现的位置是2 。
select instr('abcdabcd','abc') from dual; -- 结果是1,表示abc在字符串中abcdabcd第一次出现a的位置是1 。
select instr('abcdabcd','d') from dual; -- 结果是4,表示d在字符串中abcdabcd第一次出现的位置是4 。
select instr('abcdabcd','da') from dual; -- 结果是4,表示da在字符串中abcdabcd第一次出现d的位置是4 。
SQL> select instr('abcdabcd','a') from dual;
INSTR('ABCDABCD','A')
---------------------
1
SQL> select instr('abcdabcd','b') from dual;
INSTR('ABCDABCD','B')
---------------------
2
SQL> select instr('abcdabcd','abc') from dual;
INSTR('ABCDABCD','ABC')
-----------------------
1
SQL> select instr('abcdabcd','d') from dual;
INSTR('ABCDABCD','D')
---------------------
4
SQL> select instr('abcdabcd','da') from dual;
INSTR('ABCDABCD','DA')
----------------------
4
SQL>
2.instr(resources,aim,start,num)
解释:在resources中从start位置查找第num次出现的aim位置。
select instr('abcdabcdabcd','a',1,1) from dual; --结果是1,表示a在字符串abcdabcdabcd中从第1个位置开始第1次出现的位置。
select instr('abcdabcdabcd','a',1,2) from dual; --结果是5,表示a在字符串abcdabcdabcd中从第1个位置开始第2次出现的位置。
select instr('abcdabcdabcd','a',6,1) from dual; --结果是9,表示a在字符串abcdabcdabcd中从第6个位置开始第1次出现的位置。
select instr('abcdabcdabcd','a',6,2) from dual; --结果是0,表示a在字符串abcdabcdabcd中从第6个位置开始第2次出现的位置。因为不存在,所以是0 。
SQL> select instr('abcdabcdabcd','a',1,1) from dual;
INSTR('ABCDABCDABCD','A',1,1)
-----------------------------
1
SQL> select instr('abcdabcdabcd','a',1,2) from dual;
INSTR('ABCDABCDABCD','A',1,2)
-----------------------------
5
SQL> select instr('abcdabcdabcd','a',6,1) from dual;
INSTR('ABCDABCDABCD','A',6,1)
-----------------------------
9
SQL> select instr('abcdabcdabcd','a',6,2) from dual;
INSTR('ABCDABCDABCD','A',6,2)
-----------------------------
0
3.substr(resources,start,length)
解释:截取resources,从start开始,截取length长度字符串。
如:
select substr('abcdefg',1,1) from dual; --结果是a,表示从第1个位置开始截取长度为1的字符串。
select substr('abcdefg',1,3) from dual; --结果是abc,表示从第1个位置开始截取长度为3的字符串。
select substr('abcdefg',2,1) from dual; --结果是b,表示从第2个位置开始截取长度为1的字符串。
select substr('abcdefg',2,4) from dual; --结果是bcde,表示从第2个位置开始截取长度为4的字符串。
select substr('abcdefg',5,4) from dual; --结果是efg,表示从第5个位置开始截取长度为4的字符串。
select substr('abcdefg',10,4) from dual; --结果是空,表示从第10个位置开始截取长度为4的字符串。超出范围,所以为空。
SQL> select substr('abcdefg',1,1) from dual;
SUBSTR('ABCDEFG',1,1)
---------------------
a
SQL> select substr('abcdefg',1,3) from dual;
SUBSTR('ABCDEFG',1,3)
---------------------
abc
SQL> select substr('abcdefg',2,1) from dual;
SUBSTR('ABCDEFG',2,1)
---------------------
b
SQL> select substr('abcdefg',2,4) from dual;
SUBSTR('ABCDEFG',2,4)
---------------------
bcde
SQL> select substr('abcdefg',5,4) from dual;
SUBSTR('ABCDEFG',5,4)
---------------------
efg
SQL> select substr('abcdefg',10,4) from dual;
SUBSTR('ABCDEFG',10,4)
----------------------
SQL>