我有一個列具有字符串值,像如何從字符串中獲取特定值?
"BY *MAN MOBILE*0112305V7 - JAIPUR "
我需要得到*之間寫的代碼 - 例0112305V7
。有人可以幫我這個問題
我有一個列具有字符串值,像如何從字符串中獲取特定值?
"BY *MAN MOBILE*0112305V7 - JAIPUR "
我需要得到*之間寫的代碼 - 例0112305V7
。有人可以幫我這個問題
也許是這樣的正則表達式有:
select regexp_substr('BY *MAN MOBILE*0112305V7 - JAIPUR ','[[:digit:]]{3,}[[:alnum:]]{3,}') from dual;
這正是我一直在尋找的......謝謝 – Akanksha
假設的情況下工作在出現'*'
之後,您的字符串始終有兩個'*'
和一個' - '
,以獲得第二個'*'
和' - '
之間的值,那麼您可以使用:
select substr(str, instr(str, '*', 1, 2)+1, instr(str, ' - ') - instr(str, '*', 1, 2) -1) as theNeededString,
instr(str, '*', 1, 2) as theSecondStar,
instr(str, ' - ') - instr(str, '*', 1, 2)-1 as lengthOfTheNeededString
from (select 'BY *MAN MOBILE*0112305V7 - JAIPUR ' str from dual)
這給相當self_explanatory結果:
THENEEDED THESECONDSTAR LENGTHOFTHENEEDEDSTRING
--------- ------------- -----------------------
0112305V7 15 9
在上面的例子中,你有兩個'*'。之後你總是希望從第二個'*'和第一個'-'? – Utsav
到目前爲止您嘗試過什麼? SO不適用於像「如何做到這一點」這樣的問題,所以請做一些搜索,嘗試一些代碼,然後,如果您的代碼存在問題,請在此處發佈問題。 – Aleksej
HI Utsav,我只需要在第二個*和 - – Akanksha