關於oracle中字串的擷取 substr

2021-07-12 01:01:25 字數 1223 閱讀 7159

昨天在工作中遇到了擷取字串問題的,特地的學習了一下substr函式,在此做個記錄:

1、擷取不帶特殊欄位的某乙個特定字串:

(1) 從字串左邊某乙個位置擷取到其後面多少位:select substr('abcdefghijklmn',2,3) from dual

(2)從字串左邊某乙個位置(包括一位)擷取到最後:select substr('abcdefghijklmn',3) from dual

(3)從字串右邊某乙個位置向左擷取多少位:select substr('abcdefghijklmn',-3,3) from dual

(4)從字串右邊某乙個位置(包括一位)向左擷取多少位:select substr('abcdefghijklmn',-4) from dual

(1)含有多個特定字元,擷取其中乙個字元後的資料:

select substr('ssoc-dswb-13-001', instr('ssoc-dswb-12-001', '-', 1, 

1) +1)  from dual

--解析:彩色背景的引數值,控制從第幾個特殊字元位置擷取;紅色字型的數字代表從第幾位開始擷取。即:從第乙個『-』後第一位開始擷取

select substr('ssoc-dswb-13-001', instr('ssoc-dswb-12-001', '-', 1, 

1) +2)  from dual

--解析:彩色背景的引數值,控制從第幾個特殊字元位置擷取;紅色字型的數字代表從第幾位開始擷取。

即:從第乙個『-』後第二位開始擷取

(2)擷取特殊欄位前的字串:select substr('abcdef-ghijklmn',1,instr('abcdef-ghijklmn','-')-1)  from dual

(3)擷取特殊欄位後的字串:select substr('abcd-efghijklmn',instr('abcd-efghijklmn','-')+1,length('abcd-efghijklmn')-instr('abcd-efghijklmn','-'))   from dual

ORACLE字串擷取

substr 函式 擷取字串 語法 substr string,start,length string 表示源字串,即要擷取的字串。start 開始位置,從1開始查詢。如果start是負數,則從string字串末尾開始算起。length 可選項,表示擷取字串長度。示例 select substr h...

oracle中擷取字串

substring 返回字元 binary text 或 image 表示式的一部分。有關可與該函式一起使用的有效 microsoft sql server 資料型別的更多資訊,請參見資料型別。語法 substring expression start length 引數 expression 是字...

擷取oracle字串中的數字

方法一 如果oracle版本不是太低的話,使用 正規表示式函式 regexp substr 處理。regexp substr有5個引數,分別是 第乙個是輸入的字串 第二個是正規表示式 第三個是標識從第幾個字元開始正規表示式匹配。預設為1 第四個是標識第幾個匹配組。預設為1 第五個是是取值範圍 i 大...