oracle擷取指定字元

2021-08-15 09:38:53 字數 1502 閱讀 2706

在oracle中

可以使用instr函式對某個字串進行判斷,判斷其是否含有指定的字元。

在乙個字串中查詢指定的字元,返回被查詢到的指定的字元的位置。

instr(』源字串』 , 『目標字串』 ,』開始位置』,』第幾次出現』)

其中sourcestring代表源字串;

deststring代表要從源字串中查詢的子串;

start代表查詢的開始位置,這個引數可選的,預設為1;

如果start的值為負數,則代表從右往左進行查詢,但是位置資料仍然從左向右計算。

返回值為:查詢到的字串的位置。

對於instr函式,我們經常這樣使用:從乙個字串中查詢指定子串的位置。例如:

sql> select instr(『abcdefgh』,』de』) position from dual;

4 從1開始算 d排第四所以返回4

sql>select instr(『abcdefghbc』,』bc』,3) position from dual;

9 從第3個字元開始算起 第3個字元是c,所以從3開始以後的字串找查詢bc,返回9

從第1個字元開始,查詢第2次出現子串的位置

sql> select instr(『qinyinglianqin』,』qin』, 1, 2) position from dual;

12 substr()函式  

1.用處:是從給定的字元表示式或備註欄位中返回乙個子字串。   

2.語法格式:substr(cexpression,nstartposition [,ncharactersreturned])   

其中,cexpression指定要從其中返回字串的字元表示式或備註字段;

nstartposition用於指定返回的字串在字元表示式或備註欄位中的位置,

ncharactersreturned用於指定返回的字元數目,預設時返回字元表示式的值結束前的全部字元。  

3.舉例:store』abcdefghijlkm』 to mystring   

substr(mystring ,1,5) 顯示 「abcde」  1 從第乙個字元開始 擷取的字元中,包括第乙個字元 

substr(mystring ,6) 顯示 「fghijklm」   

substr(mystring,-2)顯示「km」   最右邊乙個字元是-1,最右邊左邊的字元是-2,然後預設是從左向有取剩下的全部的字元

substr(mystrng,-4)顯示「jlkm」

以下是本人工作中擷取的字元的例項:

這張圖是原來欄位的資料:

這張圖是擷取後獲取的資料和sql語句:

oracle 實現按照指定字元擷取陣列

功能描述 用指定分隔符切割輸入的字串,返回一維陣列,每個陣列元素為乙個子串。源 create or replace type ty str split is table of varchar2 4000 create or replace function fn split p str in var...

js 字串擷取指定字元

let str hello world 如擷取hello indexof,查詢字串,有返回下標,沒有返回 1 let index str.indexof hello substring,引數是從哪擷取到哪,不接受負數 let cutout1 str.substring index,index 5 s...

Oracle擷取字串去掉字段末尾指定長度的字元

lenewjpjlthgthb s計算string所佔的位元組長度 返回字串的長度,單位是位元組 length string 計算string所佔的字元長度 返回字串的長度,單位是字元 eg 去掉該欄位後面15位字串 select t.depre www.cppcns.comname,substr ...