Oracle資料庫中的instr函式的用法
阿新 • • 發佈:2019-02-14
一、instr函式的用法
在Oracle中可以使用instr函式對某個字串進行判斷,判斷其是否含有指定的字元。在一個字串中查詢指定的字元,返回被查詢到的指定的字元的位置。
語法:
instr(sourceString,destString,start,appearPosition)
instr('源字串' , '目標字串' ,'開始位置','第幾次出現')
- 其中sourceString代表源字串; destString代表要從源字串中查詢的子串;
- start代表查詢的開始位置,這個引數可選的,預設為1;
- appearPosition代表想從源字元中查找出第幾次出現的destString,這個引數也是可選的, 預設為1
- 如果start的值為負數,則代表從右往左進行查詢,但是位置資料仍然從左向右計算。
- 返回值為:查詢到的字串的位置。如果沒有查詢到,返回0。
二、示例:
在abcd中查詢a的位置,從第一個字母開始查,查詢第一次出現時的位置
select instr('abcd','a',1,1) from dual; ---1
select instr('abcd','c',1,1) from dual; ---3
select instr('abcd','e',1,1) from dual; ---0
該函式可以用於模糊查詢以及判斷包含關係:
例如:
select code,name,dept,occupation from staff where instr(code, '001')> 0;
等同於
select code, name, dept, occupation from staff where code like '%001%' ;
select ccn,mas_loc from mas_loc where instr('FH,FHH,FHM',ccn)>0;
等同於
select ccn,mas_loc from mas_loc where ccn in ('FH','FHH','FHM');