一、instr函数
instr(需要进行处理的字符串 , 需要进行匹配的字符串 , 从第几个开始匹配 , 匹配第几个)
例子1:
select instr('abacddddae','a',1,1)
from dual
语言描述此SQL:在字符串
'abacddddae'中从
第一 个字符开始查找
第一个出现的 字符
'a'的位置。
答案肯定 就是 1了。
例子2:
select instr('abacddddae','a',1,2)
from dual
语言描述此SQL:在字符串
'abacddddae'中从
第一 个字符开始查找
第二个出现的 字符
'a'的位置。
答案肯定 就是 3了。
例子3:
select instr('abacddddae','a',2,1)
from dual
语言描述此SQL:在字符串
'abacddddae'中从
第二 个字符开始查找
第一个出现的 字符
'a'的位置。
答案肯定 就是 3了。
例子4:
select instr('abacddddae','a',3,2)
from dual
语言描述此SQL:在字符串
'abacddddae'中从
第三 个字符开始查找
第二个出现的 字符
'a'的位置。
答案肯定 就是 9了。
例子5(延伸):
select instr('abacddddae','a',1,rownum)
from dual
connect by rownum <= 3
语言描述此SQL:在字符串
'abacddddae'中从
第一个字符开始查找
第n个出现的 字符
'a'的位置。
n为:如果是第一条记录,n=1,第二条记录,n=2...
答案肯定 就是 1,3,9了。
例子6
请尝试写出(不执行)以下两个SQL的结果:
1
select instr('abacddddae','a',rownum,rownum)
from dual
connect by rownum <= 3
2
select instr('abacddddae','a',rownum)
from dual
connect by rownum <= 9
总结:请尝试体会例子5的写法