2017-08-08 188 views
0

我有一個名爲"RAM_ESH_BABU_SAR"的字符串。如何獲取oracle中下劃線之間的字符串值

我的要求是從第一個字符到第二個下劃線的值,即RAM_ESH,並且還從輸入字符串(即SAR)獲得最後一個下劃線之後的值。

請給我建議查詢。下面的代碼我已經嘗試過。

SELECT 
    REGEXP_SUBSTR('RAM_ESH_BABU_SAR', '[^_]+', 1, 2) 
FROM 
    dual 

回答

0

你需要,所以我建議使用SUBSTR內REGEXP_INSTR()()的第二和第三個下劃線的源字符串中的位置工作。對於第三個下劃線後面的字符串還需要長度()如你想從結束字符反向工作(即字符的負數,如SUBSTR)第二paratmeter(

SELECT 
     substr(x,1,REGEXP_INSTR(x, '[_]+', 1, 2)-1)   as part1 
    , substr(x,REGEXP_INSTR(x, '[_]+', 1, 3) - LENGTH(x)) as part2 
FROM 
    (select 'RAM_ESH_BABU_SAR' x from dual) 
 
PART1 | PART2 
:------ | :---- 
RAM_ESH | SAR 

dbfiddle here

相關問題