1. 程式人生 > >Oracle資料庫中的instr函式的用法

Oracle資料庫中的instr函式的用法

一、instr函式的用法

在Oracle中可以使用instr函式對某個字串進行判斷,判斷其是否含有指定的字元。在一個字串中查詢指定的字元,返回被查詢到的指定的字元的位置。
語法:

instr(sourceString,destString,start,appearPosition) 
instr('源字串' , '目標字串' ,'開始位置','第幾次出現'
  1. 其中sourceString代表源字串; destString代表要從源字串中查詢的子串;
  2. start代表查詢的開始位置,這個引數可選的,預設為1;
  3. appearPosition代表想從源字元中查找出第幾次出現的destString,這個引數也是可選的, 預設為1
  4. 如果start的值為負數,則代表從右往左進行查詢,但是位置資料仍然從左向右計算。
  5. 返回值為:查詢到的字串的位置。如果沒有查詢到,返回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');