Oracle中INSTR函數和SUBSTR函數
1、INSTR函數
文法:
instr( string1, string2 [, start_position [, nth_appearance ] ] )
參數:
string1:源字串,要在此字串中尋找。
string2:要在string1中尋找的字串.
start_position:代表string1 的哪個位置開始尋找。此參數可選,如果省略預設為1. 字串索引從1開始。如果此參數為正,從左至右開始檢索,如果此參數為負,從右至左檢索,返回要尋找的字串在源字串中的開始索引。
nth_appearance:代表要尋找第幾次出現的string2. 此參數可選,如果省略,預設為 1.如果為負數系統會報錯。
範例:
SELECT INSTR('Hello World!','l') FROM dual;
結果:3
SELECT INSTR('Hello World!','l',4,2) FROM dual;
結果:10
--可利用此函數來檢查String1中是否包含String2,如果返回0表示不包含,否則表示包含
SELECT INSTR('Hello World!','World') FROM dual;
結果:7
--假設員工表staff,包含工號,名字,部門,職業等等
--檢索工號分別是’A10001′,’A10002′的員工的名字,部門,職業資訊
SELECT code , name , dept, occupation FROM staff WHERE code IN ('A10001','A10002');
或:
SELECT code , name , dept, occupation FROM staff WHERE code = 'A10001' OR code = 'A10002';
等效:
SELECT code , name , dept, occupation FROM staff WHERE instr('A10001,A10002',code)>0;
備忘:減少單引號的個數
--模糊查詢
SELECT code, name, dept, occupation FROM staff WHERE code LIKE '%001%' ;
等效:
SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0;
--------------------------------------分割線 --------------------------------------
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
Oracle空間資料庫函數使用
Oracle 隨機函數 DBMS_RANDOM
--------------------------------------分割線 --------------------------------------
2、SUBSTR函數
文法:
substr( string, start_position, [ length ] )
參數:
string:要截取的字串
start_position:截取開始位置
length:截取長度
範例:
SELECT SUBSTR('Hello World!',3) FROM dual;
結果:llo World!
SELECT SUBSTR('Hello World!',3,6) FROM dual;
結果:llo Wo
SELECT SUBSTR('Hello World!',0) FROM dual;
結果:Hello World!
SELECT SUBSTR('Hello World!',1) FROM dual;
結果:Hello World!
SELECT SUBSTR('Hello World!',-0) FROM dual;
結果:Hello World!
SELECT SUBSTR('Hello World!',-1) FROM dual;
結果:!
SELECT SUBSTR('Hello World!',-5) FROM dual;
結果:orld!