oracle中substr() instr() 用法

l23456789o發表於2018-11-09
--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--效果一樣

 

 

--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--效果一樣

 

相關文章