转载:oracle中substr() instr() 用法
substr(字符串,截取开始位置,截取长度) = 返回截取的字符串
instr(源字符串,目标字符串,起始字符串,匹配字符串) = 返回要截取的字符串在源字符串中的位置,从字符的开始,只检索一次
备注:两函数对待字符串的位置的索引是从1开始的(填写0和1都是代表从第1个位置开始)
--substr(字符串,截取开始位置,截取长度)=返回截取的字符串
select substr('miaoying',0,1) from dual;--返回结果为:m
select substr('miaoying',1,1) from dual;--返回结果为:m--说明0和1都表示截取的位置为第一个字符
select substr('miaoying',-7,4) from dual;--返回结果为:iaoy--负数表示:-7表示从右边开始数第七位开始,也就是i,截取长度为4的字符串
--instr(源字符串,目标字符串,起始字符串,匹配字符串)=返回要截取的字符串在源字符串中的位置,从字符的开始,只检索一次
--instr(string1,string2,index1,index2) 表示:要在string1的index1号位置,开始查找,第index2次,出现的string2
select instr('miaoying','i',2,2) from dual;--返回6:也就是说:在"miaoying"的第2号位置开始,查找第二次出现的i的位置
select instr('miaoying','k',2,2)from dual;--返回0:即如果查找不到,则返回0
select instr('miaoying','i') from dual;--返回2
select instr('miaoying','yi') from dual;--返回5:即"yi"的y的位置
select instr('miaoying','i',-1,2) from dual;--返回2:
--空格也是字符。。。。。
select * from omgnode a where name like '%miaoying%'
select * from omgnode a where instr(name,'miaoying')>0--效果一样